Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пересечение прямоугольников отрезком


mega ©   (2008-02-08 15:16:00) 

Привет Мастерам! Извниняюсь за оффтопик.. Но не подскажете ли вы решение следующей проблемы? Попытаюсь сформулировать на примере шахматной доски.. Есть отрезок в известных координатах в пределах плоскости доски, как узнать через какие клетки он проходит? Известны начальная, конечная клетки и их размер...


NiGGa   (2008-02-08 17:00:00) [1]

Учебник аналитической геометрии (класс 9-10, точно не помню) + читать.


Jeer   (2008-02-08 16:56:00) [2]

Если в пикселах, то сканировать вдоль прямой попадание на заданную решетку.


Dib@zol   (2008-02-08 16:28:00) [3]

Ну тады, если я опять не туплю, не полудиагональ, а сумма полустороны dи вот етого: d*(sqrt(2)-1)*sin(2*(oX^AB)), где d - полусторона, oX^AB - угол между осью абсцисс и отрезком.


mega   (2008-02-08 16:26:00) [4]

спасибо за советы, пробую DDA...


Anatoly Podgoretsky   (2008-02-08 16:21:00) [5]

> ketmar  (08.02.2008 15:50:04)  [4]

Это самое простое, работает для любых пикселей.


mega   (2008-02-08 16:15:00) [6]

Извиняюсь на неграммотность.. Просто не совем понятен термин "полудиагональ"... Это 0,5 диагонали? Если так то как быть, например, со случаем когда прямая проходит под клеткой горизонтально? Расстояние от нее до центра высшей клекти меньше чем 0,5 диагонали


Jeer   (2008-02-08 16:12:00) [7]

Не озвучена целевая задача, поэтому можно телепатировать до ус...


ketmar   (2008-02-08 16:04:00) [8]

>[5] mega (2008-02-08 15:58:00)
таки расстояние. впрочем, лично я бы делал DDA.

---
Understanding is not required. Only obedience.


Jeer   (2008-02-08 16:02:00) [9]


> превышение расстояния (полудиагональ) от этих точек до заданной
> прямой.


Условие - что не проходит.
Обратное - просто not


mega   (2008-02-08 15:58:00) [10]

Расстояние то я асилю... А какое условие что проходит через клетку?


ketmar   (2008-02-08 15:50:00) [11]

>[3] mega (2008-02-08 15:44:00)
ты от точки до прямой расстояние вычислить асилишь? в чём проблема дальше? перебрать даже 64 клетки в тупом цикле?

зыж или вообще взять DDA-алгоритм.

---
Understanding is not required. Only obedience.


mega   (2008-02-08 15:44:00) [12]

Jeer, а можно подетальнее? Т.е. циклом по всем клеткам, вычисляем координаты центра?... А дальше? Координты начал и конца отрезка в произвольном месте клетки


Jeer   (2008-02-08 15:23:00) [13]

P.S.
>Рассчитываются (координаты)точек-центров


Jeer   (2008-02-08 15:21:00) [14]

Рассчитываются точек-центров клеток и вычисляется превышение расстояния (полудиагональ) от этих точек до заданной прямой.


Наверх

Титульная страница Поиск, карта сайта Написать письмо