Алгоритм для определения точек пересечения луча с цилиндром

Уравнение цилиндра:

. (1)

Параметрическое уравнение прямой:

(2)

(l,m,n) – координаты вектора, коллинеарного данной прямой.

Точка принадлежит прямой.

Подставим уравнение прямой (2) в уравнение цилиндра (1). Получим квадратное уравнение относительно t.

;

; (3)

. (4)

  1. Если выполняются соотношения:

;

; (5)

;

; (6)

; (7)

то прямая лежит на боковой поверхности цилиндра.

  1. Если выполняются условия (5), (6), но не выполняется (7), то прямая || оси OZ и лежит внутри цилиндра (нет точек пересечения).
  2. Если выполняется (5) и не выполняются остальные условия, то прямая || оси OZ и лежит вне цилиндра (нет точек пересечения).
  3. Если дискриминант (4) D <0, то если не выполняются условия п.1, то точек пересечения нет.
  4. Если дискриминант (4) D =0, то прямая касается цилиндра в одной точке.
  5. Если дискриминант (4) D >0, то существует 2 точки пересечения.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: