Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
18.03.2016
Размер:
264.35 Кб
Скачать

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

Пусть плоскость задана общим уравнением:

Ax + By + Cz + D = 0 ,

где N=(A, B, C) – нормальный вектор плоскости.

A(x0 + lt) + B( y0 + mt) + C(z0 + nt) + D = 0

t* = −

( Ax0 + By0 + Cz0 + D)

Al + Bm + Cn

 

В случае t*<0 луч не пересекает плоскости.

Если t*>0 то координаты точки пересечения вычисляются подстановкой полученного значения t*

x* = x0 y* = y0 z* = z0

+lt*,

+mt*,

+nt *.

Пересечение луча с многоугольником

нахождение пересечения луча с плоскостью, в которой лежит многоугольник;

проверка принадлежности точки пересечения многоугольнику.

y

P

 

x

O

P*

z

Пересечение луча с треугольником

нахождения пересечения плоскости треугольника с отрезком;

проверки: лежит ли точка пересечения внутри треугольника.

Пересечение с прямоугольным параллелепипедом

Прямоугольный параллелепипед со сторонами, параллельными координатным плоскостям, однозначно определяется любыми двумя своими вершинами, примыкающими к одной из его диагоналей:

(x_, y_, z_), (x+, y+, z+). Противоположные грани рассматриваемого прямоугольного

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

yz: x=x_ и x=x+.

При l = 0 заданный луч параллелен этим плоскостям и, если x0=x_ или x0=x+, не пересекает рассматриваемый прямоугольный параллелепипед. Иначе вычисляем отношения:

t1x =

x _− x0

, t2 x =

x+

x0

.

l

l

 

 

 

 

 

t1x < t2 x (в противном случае меняем их местами). Положим tnear = t1x ,tfar = t2 x .

Аналогично рассматриваем две других пары плоскостей.

Соседние файлы в папке Брундасов. Компьютерная графика. Лекции