Введение в программирование трехмерных игр с DX9



         

Пересечение луча и плоскости



Пересечение луча и плоскости

Предположим, у нас есть луч p(t) = p0 + tu и плоскость n Ч p + d = 0, и мы хотим определить пересекает ли луч плоскость и, если да, то вычислить координаты точки пересечения. Для этого мы помещаем формулу луча в формулу плоскости и вычисляем такое значение параметра t, которое удовлетворяет уравнению плоскости. Подстановка найденного значения в уравнение луча позволяет вычислить координаты точки пересечения.

Подставляем формулу (9) в формулу плоскости:

формула 52

Подставляем уравнение луча в формулу плоскости.

формула 53
формула 54

Раскрываем скобки.

формула 55
формула 56

Выносим за скобки переменную.

формула 57

Решение для t.

Если значение t не находится в диапазоне [0, ∞), значит луч не пересекает плоскость.

Если значение t находится в диапазоне [0, ∞), точка пересечения находится путем подстановки найденного значения параметра в формулу луча:


формула 58




Содержание  Назад  Вперед