Треугольник и луч

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Треугольник и луч

Сообщение d3drm » 13.08.2005 (Сб) 1:45

Помогите вывести самую простую формулу для определения МЕСТА пересечения треугольника с лучом.

Даны три координаты треугольника, нормаль, и точка откуда луч выходит. Направление луча - это вектор, противоположенный нормали. Хотя луч может не пересекать треугольник внутри его границ, он пересекает плоскоть, в которой лежит треугольник. Как исходя из этого найти u и v координаты, где треугольник пересекается (повторяю, даже если пересечение ЗА его границами).
ХЎ

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 14.08.2005 (Вс) 8:41

Код: Выделить всё
'Функция проектирует точку на плоскость в направлении нормали к плоскости
Function FindPointToPlaneProj(vPoint As D3DVECTOR, vP1 As D3DVECTOR, vP2 As D3DVECTOR, vP3 As D3DVECTOR) As D3DVECTOR
Dim v1 As D3DVECTOR, v2 As D3DVECTOR  'Вспомогательные вектора
Dim vN As D3DVECTOR
Dim Mtrx As D3DMATRIX
Dim Plane As D3DPLANE
  'Находим Plane - плоскость
  D3DXPlaneFromPoints Plane, vP1, vP2, vP3

  'Находим vN - нормаль к плоскости
  D3DXVec3Subtract v1, vP2, vP1
  D3DXVec3Subtract v2, vP3, vP1
  D3DXVec3Cross vN, v1, v2  'Возможно v1 и v2 нужно поменять местами

  'Находим Mtrx - матрицу тени (проекции) на плоскость в направлении нормали
  D3DXMatrixShadow Mtrx, vN, Plane

  'Проектируем
  D3DXVec3Transform v1, vPoint, Mtrx
  FindPointToPlaneProj = v1
End Function

Это то?

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 14.08.2005 (Вс) 12:21

буду посматреть, спасибо. Кстати, я нашел офигенную штуку, называется paralax mapping, выглядит намного лучше на мой взгляд, чем обычный бамп. Если пример сделаю, выложу к сентябрю (наверно только exe, если буду его использовать в своих программах).
ХЎ


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList