Лекция №10. Алгоритм пересечения луча с простейшими геометрическими объектам План


Download 0.6 Mb.
Sana20.12.2022
Hajmi0.6 Mb.
#1038218
TuriЛекция
Bog'liq
№10 Peresechenie lucha 309


Лекция №10. Алгоритм пересечения луча с простейшими
геометрическими объектам


План:

1.Алгоритм пересечения луча с простейшими геометрическими


объектам;
2. Пересечение луча со сферой;
3. Пересечение луча с плоскостью
4. Литература.


1.Алгоритм пересечения луча с простейшими геометрическими
объектам
Луч с началом в точке О, определяемый начальным вектором R0 (x0, y0, z0) и направляющим вектором
L = (l,m,n) ≠ 0 описывается при помощи параметрического уравнения в векторной форме:
R (t) = R0 + L∙t, (t>o);
или координатным параметрическим уравнением:

Представление луча:





2.Пересечение луча со сферой
Сфера радиуса r с центром в точке C(xc, yc, zc) в прямоугольной декартовой системе координат описывается неявным уравнением вида:

Для нахождения точки пересечения заданного луча со сферой, заменим величины x,y,z в уравнении сферы выражениями из уравнения луча.


П осле несложных преобразований получим следующее уравнение, для определения t:

г де


Корни квадратного уравнения легко вычисляются



  • Если дискриминант d = b² − c < 0, - то заданный луч проходит мимо сферы, т.е. луч не пересекает сферу.

  • Если же d = b² − c ≥ 0, то заданный луч имеет со сферой общую точку, но лишь в случае, если хотя бы один из корней t− или t+ положителен (t>0).

  • Наименьший положительный корень определяет на луче ближайшую (считая от начальной точки луча) точку пересечения луча со сферой.

  • Пусть t*именно такой корень, тогда координаты точки M* (x*,y*,z*) пересечения заданного луча со сферой определяются по формулам:




Рис.1. Пересечение луча со сферой


2. Пересечение луча с плоскостью
Пусть плоскость задана общим уравнением:
ax+by+cz+d=0
где N=(a,b,c) – нормальный вектор плоскости.
В случае, когда вектор N единичный, d – с точностью до знака равно расстоянию от начала координат (0,0,0) до рассматриваемой плоскости.

Заменяя в уравнении плоскости плоскости величины x,y,z их выражени-ями из уравнения луча, получим линейное уравнение для определения параметра t:





решая его, получим:





или в векторной форме:



Если (N∙L)=al+bm+cn=0, то луч параллелен плоскости, т.е. не пересекает ее. В противном случае вычисляем t*.
Если t*<0, то луч не пересекает плоскость, иначе − пересекает плоскость, и координаты точки пересечения определяются по формулам:



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



Рис.3. Пересечение луча с параллелепипедом
4. Литература
1. Шикин Е.В., Боресков А.В. Компьютерная графика. Динамика,
реалистические изображения. М. 1996. 288 с.
2. Порев В.Н. Компьютерная графика. СПб. 2004. 432 с.
3. Donald Hearn, M. Pauline Baker. Computer graphics. C version. 2-d edition.
4. David Salomon. The Computer Graphics Manual. Volume 1.
Download 0.6 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling