Геометрические преобразования
Уравнения прямой и плоскости
Уравнение прямой на плоскости в декартовой системе координат можно задать уравнением вида





![]() |
( 3.4) |
Прямую в пространстве тоже можно задавать параметрическим
уравнением, которое очень легко получить из предыдущего простым
переходом от двумерных векторов к трехмерным. Пусть . Тогда это
уравнение будет определять прямую в пространстве, а координаты точек
этой прямой будут определяться формулами
![]() |
( 3.5) |
Как известно из элементарной геометрии, через любые три точки в пространстве проходит плоскость. С другой стороны, через каждую точку плоскости можно провести единственную прямую, перпендикулярную данной плоскости. При этом все эти прямые будут параллельны друг другу, а значит, они имеют общий вектор направления. Этот вектор будем называть нормалью к плоскости. Если длина вектора равна единице, мы будем называть его единичной нормалью. В компьютерной графике часто приходится решать задачу построения нормали к некоторой плоскости, заданной тремя точками, а также задачи пересечения прямой с плоскостью и двух плоскостей.
Плоскость в пространстве можно задать, указав вектор нормали к ней
и какую-либо точку, принадлежащую данной плоскости. Пусть - вектор
единичной нормали, а
- некоторая точка на плоскости. Тогда для любой
точки
, лежащей на плоскости, вектор
будет ортогонален вектору
нормали, а следовательно, выполняется равенство


![]() |
( 3.6) |




В алгоритмах компьютерной графики довольно часто приходится
сталкиваться с задачей построения плоскости, проходящей через три
заданные точки. Пусть три точки ,
и
, не лежащие на одной прямой,
имеют координатами
и
. Для канонического уравнения необходимо
построить нормаль к плоскости, что легко можно осуществить, используя
операцию векторного произведения. Поскольку векторы
и
лежат в
искомой плоскости, то вектор
будет ортогонален этой плоскости. Пусть
, тогда уравнение плоскости будет иметь вид

Остается определить значение . Так как точка
принадлежит этой
плоскости, то ее координаты должны удовлетворять полученному
уравнению. Подставим их в уравнение и получим


![]() |
( 3.7) |
В большинстве алгоритмов, использующих плоскости, достаточно знать нормаль к ней и какую-либо точку, принадлежащую плоскости. Очевидно, что по аналогии можно вывести каноническое уравнение прямой на плоскости, если задана нормаль к ней и принадлежащая прямой точка.
Пересечение луча с плоскостью и сферой
Прямая на плоскости и в пространстве является бесконечной в обе
стороны. Лучом называется полупрямая, т.е. множество всех точек
прямой, лежащих по одну сторону от заданной ее точки, называемой
началом луча. Луч будем задавать в параметрическом виде, как это было
описано в одном из предыдущих разделов. Пусть - направляющий вектор
прямой, а
- начальная точка. Тогда координаты точек луча будут
определяться формулами
![]() |
( 3.8) |
Будем считать, что направляющий вектор единичный, т.е. .
Сначала рассмотрим задачу о нахождении точки пересечения луча с плоскостью, заданной каноническими уравнением
![]() |
( 3.9) |
Вектор нормали тоже будем считать единичным. Сначала надо
определить значение параметра t, при котором луч пересекает плоскость.
Для этого подставим координаты из формулы (3.8) в уравнение (3.9) и
получим


Очевидно, что такая точка существует только при условии . В свою
очередь, эта величина обращается в нуль только в случае, когда векторы
и
ортогональны друг другу.
Пусть теперь нам задана сфера с центром в точке и радиусом
.
Тогда уравнение сферы будет иметь вид

Подставив сюда координаты луча из уравнения (3.8), получим, что параметр, при котором луч пересекает сферу, должен удовлетворять квадратному уравнению





