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

О Нет решений: луч минует эллипс.

О Одно решение: луч касается эллипса.

О Два решения: луч входит в эллипс и затем выходит из него.

Если начало луча лежит внутри камеры, то одно из решений положительное, а другое отрицательное (почему?) Возьмем положительное решение и назовем его Требуется найти направление отраженного луча в точке соударения. Образуем из выражений уравнения (11.3) х(£) = асоэ(г) и г/(£) = &зт(г) нормальный вектор (-&соз(г), -азт(£)), что в терминах х и у выглядит как {-Ьх/а, -ау/Ъ). Поскольку нам нужно только направление нормали, то удобнее изменить масштаб и представить формулу в виде

y(t) - sin(2nM),
(11.98)

Тематическое задание 11.2. «Эллиптипул»

Пул (pool) - род игры в бильярд. - Примеч. пер.

1 Пул (pool) - род игры в бильярд. - Примеч. пер.

11.13. Тематические задания

(-Ь2х, -а2у). Нам требуется внутренняя нормаль, так как луч отражается от внутренней стенки эллипса. Рассматривая рис. 11.62, можно увидеть, что х- и ^-компоненты внутренней нормали отрицательны при положительных х и у, поэтому именно выражение п - (-Ь2х, -а2у) (11.99)

является направлением внутренней нормали. Направление отраженного луча г можно определить подстановкой уравнения (11.99) в уравнение (4.27).

Имитация эллиптипула

Рис. 11.62. Имитация эллиптипула Имитация эллиптипула демонстрирует некоторые особенности его поведения"opengl1_831.html">⇐ Предыдущая| |Следующая ⇒