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

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

Определение Пересечений


nukeATK ©   (2003-07-20 00:27:00) 

Надо наити точку пересечения луча с треугольником. Где мона наити работающий пример или почитать что-то, не подскажете?
заранее благодарен.


Marser   (2003-07-20 11:54:00) [1]


> Где мона наити

И уже больше ничего не нуна! :-))


Ev_genus   (2003-07-20 04:35:00) [2]

Пусть луч = точка + вектор. Тогда уравнение прямой в которой лежит луч будет иметь следующий вид
x=xp+xv*t
y=yp+yv*t
z=zp+zv*t
где (xp, yp, zp) - координаты точки выхода, а (xv, yv zv) - координаты вектора луча.
Построим уравнение плоскости, проходящей через заданний треугольник с вершинами (x1, y1, z1), (x2, y2, z2), (x3, y3, z3). Уравнение записивается через определитель

| x1-x2 y1-y2 z1-z2 |
| x1-x3 y1-y3 z1-z3 | = 0
| x1-x y1-y z1-z |

Для нахождения пересечения нужно подставить уравнение прямой в уравнение плоскости и найти значение параметра t, а затем подставив его обратно в уравнение прямой найти координаты.


Наверх

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