Основы компьютерной графики


Элементы аналитической геометрии


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

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

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

Элементы аналитической геометрии

Рис. 1. Нахождение координаты

Элементы аналитической геометрии
 точки P.

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

Элементы аналитической геометрии
 на ось является единственная точка на оси такая, что отрезок прямой, проведенной из этой точки к точке
Элементы аналитической геометрии
 является перпендикулярным к данной оси.

Таким образом, положение в пространстве точки

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


Элементы аналитической геометрии


Рис.2. Левосторонняя и правосторонняя системы координат.

Ось
Элементы аналитической геометрии
  при этом может проходить как в направлении от наблюдателя в плоскость листа, так и от плоскости листа к наблюдателю. В первом случае система координат будет называться левой или левосторонней, а во втором случае – правой или правосторонней. Более точное определение правой и левой систем координат можно дать следующее. Если посмотреть из положительной полуоси
Элементы аналитической геометрии
 в направлении начала координат, то для совмещения положительной полуоси
Элементы аналитической геометрии
 с положительной полуосью
Элементы аналитической геометрии
 необходимо повернуть
Элементы аналитической геометрии
 относительно начала координат против часовой стрелки – в этом случае имеем правую систему координат; если же поворот производится по часовой стрелке – то система координат левая*. Существует также легкий способ определения вида системы координат по правой или левой руке, как показано на рис. 3. Для левой руки большой, указательный и средний пальцы формируют левую тройку ортогональных векторов. То же относится и к их циклическим перестановкам.

Элементы аналитической геометрии


Рис. 3. Определение левосторонней системы координат по левой руке.

Декартовы координаты точек позволяют описывать статичное положение объектов в пространстве. Однако для проведения каких-либо действий над объектами необходимо иметь дополнительные математические конструкции. В качестве одной из таких конструкций применяют радиус-векторы. Радиус-векторы обладают всеми свойствами векторов, но имеют одну особенность: начало радиус-вектора находится всегда в начале координат, а конец радиус-вектора лежит в некоторой точке пространства. Это свойство радиус-векторов позволяет поставить во взаимно однозначное соответствие всем точкам пространства соответствующие им радиус-векторы. Формально это соответствие запишем в следующем виде. Пусть точка
Элементы аналитической геометрии
 имеет координаты
Элементы аналитической геометрии
, то есть
Элементы аналитической геометрии
, и
Элементы аналитической геометрии
  радиус-вектор, конец которого находится в точке
Элементы аналитической геометрии
, где
Элементы аналитической геометрии
  тройка единичных базисных векторов, или просто нормированный базис. Тогда точке
Элементы аналитической геометрии
 взаимно однозначно соответствует радиус-вектор
Элементы аналитической геометрии
, или
Элементы аналитической геометрии
. Таким образом, можно легко переходить от координат точек к радиус-векторам и обратно.



Элементы аналитической геометрии
  Далее мы увидим что представление радиус-вектора в виде линейной комбинации векторов базиса имеет вполне конкретное практическое применение. Отметим, что радиус-вектор иногда определяют как преобразование переноса точки из начала координат в заданную точку пространства с известными координатами. При этом умножение радиус-вектора
Элементы аналитической геометрии
 на число
Элементы аналитической геометрии
 означает перенос точки из начала координат в направлении вектора
Элементы аналитической геометрии
 на расстояние
Элементы аналитической геометрии
, где прямые скобки означают операцию взятия модуля вектора:

Элементы аналитической геометрии


Сложение радиус-векторов
Элементы аналитической геометрии
 можно рассматривать как перенос точки
Элементы аналитической геометрии
 по направлению вектора
Элементы аналитической геометрии
 на расстояние
Элементы аналитической геометрии
.

Рассмотрим теперь каким образом можно использовать координаты точек и радиус-векторы для описания прямых и плоскостей в трехмерном пространстве. Под описанием прямой понимаем знание того принадлежит ли точка с заданными координатами нашей прямой или нет. То есть нужно получить некую математическую зависимость или уравнение прямой. Мы получим уравнение прямой двумя способами.

Во-первых, известно, что две различные точки определяют в пространстве прямую. Выберем в пространстве две точки
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 и проведем через них прямую, как показано на рис 4.

Элементы аналитической геометрии


Рис. 4. Вывод уравнения прямой в трехмерном пространстве.

Проведем от точки
Элементы аналитической геометрии
 к точке
Элементы аналитической геометрии
 вектор
Элементы аналитической геометрии
. Тогда радиус-вектор
Элементы аналитической геометрии
, определяющий некоторую точку на прямой, можно получить сложением, например, вектора
Элементы аналитической геометрии
Элементы аналитической геометрии
 и вектора
Элементы аналитической геометрии
, умноженного на некоторое число
Элементы аналитической геометрии
. Или
Элементы аналитической геометрии
. Фактически мы уже получили уравнение прямой, но не через координаты двух точек на прямой, а другим способом, с помощью, так называемых, базового радиус-вектора
Элементы аналитической геометрии
 и направляющего радиус-вектора
Элементы аналитической геометрии
. Преобразуем это уравнение к виду в котором используются только координаты двух исходных векторов
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
:

Элементы аналитической геометрии
                (1)

Из этого векторного равенства получаем три равенства для соответствующих координат:

Элементы аналитической геометрии


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



Элементы аналитической геометрии
                       (2)

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

Элементы аналитической геометрии
                                       (3)

При
Элементы аналитической геометрии
 получаем точки прямой, лежащие между
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
. При
Элементы аналитической геометрии
 – точки лежащие на прямой за
Элементы аналитической геометрии
, при
Элементы аналитической геометрии
 – точки, лежащие на прямой за
Элементы аналитической геометрии
. Для проверки этого просто подставьте в уравнение вместо
Элементы аналитической геометрии
 значения 0 и 1.

Перейдем теперь к выводу уравнения плоскости. Мы сможем получить его тремя путями. Но прежде напомним определение скалярного произведения. Для двух радиус-векторов
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 скалярным произведением назовем число
Элементы аналитической геометрии
, где
Элементы аналитической геометрии
 - угол между векторами
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
. Для векторов запись вида
Элементы аналитической геометрии
 или
Элементы аналитической геометрии
 также будем считать скалярным произведением. Скалярное произведение можно выразить через координаты векторов:

Элементы аналитической геометрии
 
,

так как при раскрытии скобок скалярные произведения перпендикулярных векторов базиса по определению обращаются в ноль.

Используем свойства скалярного произведения для вывода уравнения плоскости. Рассмотрим некоторую плоскость в пространстве и некоторую точку
Элементы аналитической геометрии
, про которую мы знаем, что она лежит в этой плоскости, как показано на рисунке 5.

Элементы аналитической геометрии


Рис. 5. Вывод уравнения плоскости в трехмерном пространстве.

 Возьмем также некоторый радиус-вектор
Элементы аналитической геометрии
, перпендикулярный нашей плоскости. Этот вектор назовем нормалью к плоскости. Пусть теперь требуется определить принадлежит ли некоторая точка (или радиус-вектор)
Элементы аналитической геометрии
 плоскости или нет. Для этого заметим, что для любой точки
Элементы аналитической геометрии
, принадлежащей плоскости, вектор
Элементы аналитической геометрии
 и радиус-вектор нормали
Элементы аналитической геометрии
 – перпендикулярны. А это значит, что их скалярное произведение равно нулю:

Элементы аналитической геометрии
                                             (4)

Так мы уже получили уравнение плоскости. Раскроем скобки и запишем его в более удобном виде:
Элементы аналитической геометрии
, где константа
Элементы аналитической геометрии
. Если
Элементы аналитической геометрии
, а
Элементы аналитической геометрии
, то в координатной записи наше уравнение плоскости запишется в виде



Элементы аналитической геометрии
                                       (5)

Известно что плоскость может быть задана тремя точками, лишь бы они не лежали на одной прямой, то есть если они не коллинеарны. Получим уравнение плоскости для трех заданных точек. Для этого рассмотрим определение векторного произведения. Результатом векторного произведения двух векторов
Элементы аналитической геометрии
 является вектор
Элементы аналитической геометрии
, модуль которого равен
Элементы аналитической геометрии
, и направлен он перпендикулярно плоскости в которой лежат векторы
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
, причем векторы
Элементы аналитической геометрии
 –
образуют правую тройку векторов (см. определение правой системы координат), здесь
Элементы аналитической геометрии
 также угол между векторами
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
. Для векторов единичного базиса, образующих правую тройку, как следует из определения:
Элементы аналитической геометрии
,
Элементы аналитической геометрии
,
Элементы аналитической геометрии
. Векторное произведение также  подчиняется дистрибутивному закону как и скалярное произведение. Однако векторное произведение не коммутативно, а именно, если для векторов
Элементы аналитической геометрии
, то
Элементы аналитической геометрии
, что также прямо следует из определения. Координаты векторного произведения легко получить разложив векторы, участвующие в произведении, по базису, а затем раскрыв скобки, подобно тому как это уже было проделано для скалярного произведения. Есть и другой, неформальный, но легче запоминаемый способ получения координат векторного произведения, с помощью разложения следующего определителя по его первой строке. Если
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
, тогда

Элементы аналитической геометрии


Сведем теперь условия в новой постановке задачи нахождения уравнения плоскости к предыдущему случаю, где мы использовали вектор нормали. Пусть заданы фиксированные векторы
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
, не лежащие на одной прямой, определяющие плоскость, уравнение которой требуется получить (рис. 6).

Элементы аналитической геометрии


Рис. 6. Вывод уравнения плоскости проходящей через три точки.

Результат векторного произведения любых двух неколлинеарных векторов, параллельных нашей плоскости, будет вектором перпендикулярным плоскости. И как раз такими являются векторы разности
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
. Выберем их векторное произведение в качестве вектора нормали, то есть
Элементы аналитической геометрии
. Тогда, если
Элементы аналитической геометрии
 – произвольный радиус-вектор, принадлежащий плоскости, то искомым уравнением плоскости будет, аналогично формуле (4):



Элементы аналитической геометрии
,

причем в последней скобке вместо вектора
Элементы аналитической геометрии
 можно было использовать, например, векторы
Элементы аналитической геометрии
 или
Элементы аналитической геометрии
. Не будем далее расписывать это уравнение через координаты, так как это не трудно проделать самостоятельно.

Рассмотрим еще несколько определений и типичных задач, решение которых не должно вызывать замешательств.

Иногда бывает необходимо вычислить длину проекции радиус-вектора не на ось системы координат, а на другой радиус-вектор. Найдем длину проекции вектора
Элементы аналитической геометрии
 на вектор
Элементы аналитической геометрии
. Эта ситуация изображена на рис.7, из которого, очевидно, следует и решение задачи.

Элементы аналитической геометрии


Рис. 7. Проекция вектора
Элементы аналитической геометрии
 на вектор
Элементы аналитической геометрии
.

Искомая длина проекции:
Элементы аналитической геометрии
=
Элементы аналитической геометрии
=
Элементы аналитической геометрии
.

Как видно, если длина вектора, на который проецируется другой вектор, равна единице, то длина проекции будет просто равна скалярному произведению этих векторов.

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

Решим задачу нахождения минимального расстояния от начала координат до плоскости. Очевидно, что это расстояние необходимо откладывать вдоль прямой, определяемой вектором нормали к плоскости. Но для нахождения этого расстояния надо найти сначала точку пересечения прямой с плоскостью. Поэтому решим в общем виде задачу нахождения точки пересечения прямой и плоскости. Пусть искомая точка, или соответствующий радиус-вектор называется x. Тогда эта точка должна одновременно удовлетворять уравнениям прямой и плоскости, например,
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
. Подставив x из первого уравнения во второе, найдем значение константы
Элементы аналитической геометрии
, которое затем подставим в исходное уравнение прямой для получения координат искомой точки:

Элементы аналитической геометрии
 
Элементы аналитической геометрии
 
Элементы аналитической геометрии


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


Учитывая это, запишем:

Элементы аналитической геометрии


Отсюда искомое расстояние от начала координат до плоскости равно

                                                       

Элементы аналитической геометрии


В том случае когда вектор нормали
Элементы аналитической геометрии
 является нормированным, константа
Элементы аналитической геометрии
 в уравнении плоскости равна расстоянию от начала координат до данной плоскости.

Кроме определения положения точек в пространстве радиус-векторы также определяют некоторое направление в пространстве.

Направление, определяемое радиус-вектором, удобно описывать с помощью, так называемых, направляющих косинусов. Пусть радиус-вектор
Элементы аналитической геометрии
 составляет с осями координат
Элементы аналитической геометрии
,
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 углы, соответственно,
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 (рисунок 8). Тогда его направляющими косинусами будут:

Элементы аналитической геометрии
,
Элементы аналитической геометрии
,
Элементы аналитической геометрии


Элементы аналитической геометрии


Рис. 8. Направляющие косинусы.

Отсюда, очевидно, вытекают следующие свойства направляющих косинусов:

Элементы аналитической геометрии
.

Направляющие косинусы пропорциональны соответствующим координатам:

Элементы аналитической геометрии
 ,

а в случае, когда вектор
Элементы аналитической геометрии
 нормирован, значения его координат равны соответствующим направляющим косинусам.

Рассмотрим далее функциональное представление плоскости. Для этого в уравнении (5) перенесем константу из правой части в левую и запишем функцию трех переменных
Элементы аналитической геометрии
.

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

Элементы аналитической геометрии


Рис. 9. Функциональное представление плоскости.

Свойство сохранения знака функции
Элементы аналитической геометрии
 удобно использовать в алгоритмах удаления невидимых ребер и граней для определения того лежат ли точки по одну сторону от плоской грани или нет.


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

Рассмотрим далее три метода решения классической задачи определения принадлежности точки внутренней или граничной области треугольника. Эта задача имеет, конечно же, много решений, некоторые из которых может придумать и сам читатель. Пусть на плоскости
Элементы аналитической геометрии
 заданы три точки
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
, образующие треугольник (рис. 10).

Элементы аналитической геометрии


Рис. 10. Внутренняя область треугольника соответствует отрицательным направлениям векторов нормалей.

Через каждую пару вершин треугольника можно провести прямую. Замкнутая область пересечения трех полуплоскостей, образованных этими прямыми есть внутренняя область треугольника. Пользуясь вектором нормали
Элементы аналитической геометрии
 можно записать уравнение прямой на плоскости:
Элементы аналитической геометрии
. Идея первого метода состоит в том, чтобы записать функциональные представления уравнений прямых, образующих стороны треугольника, таким образом, чтобы внутренняя область треугольника соответствовала, например, отрицательным значениям. Тогда условием принадлежности внутренней области треугольника будут отрицательные значения трех функциональных уравнений прямых при подстановке координат проверяемой точки. Основной проблемой в этом методе является правильный выбор направления вектора нормали к прямой.

Следующий метод основан на преобразовании треугольника с помощью операции переноса таким образом чтобы проверяемая точка совпала с началом координат. Поворотом плоскости вокруг начала координат расположим одну (любую) из вершин треугольника на оси
Элементы аналитической геометрии
. Тогда если знаки координат
Элементы аналитической геометрии
 оставшихся двух точек совпадают, то искомая точка лежит вне треугольника.


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

Элементы аналитической геометрии
      

                                      Рис. 11. Точка
Элементы аналитической геометрии
 вне треугольника.

Условием принадлежности точки внутренней области треугольника будет несовпадение знаков
Элементы аналитической геометрии
 ? координат оставшихся двух вершин после каждого из трех поворотов.

Элементы аналитической геометрии


Рис. 12.Точка
Элементы аналитической геометрии
 внутри треугольника.

 Нахождение точки на одной из сторон треугольника легко определяется по несовпадению знаков
Элементы аналитической геометрии
-координат двух вершин которые после одного из поворотов оказались лежащими на оси
Элементы аналитической геометрии
. Этот метод эффективен когда больше вероятность что точка лежит вне треугольника. Отрицательной его чертой является необходимость вычисления синусов и косинусов углов при повороте системы координат.

Третий из приводимых здесь методов представляется наиболее компактным и скоростным с вычислительной точки зрения. Этот метод был предложен автору Д. Чистяковым в 1999 году. Заметим, что очень просто можно определить принадлежность точки внутренней области треугольника – единичного симплекса, то есть треугольника, образованного точками с координатами
Элементы аналитической геометрии
,
Элементы аналитической геометрии
,
Элементы аналитической геометрии
. Для этого достаточно чтобы координаты искомой точки имели значения в отрезке
Элементы аналитической геометрии
 и выполнялось условие
Элементы аналитической геометрии
, где
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 ? координаты точки. Заметим также, что с помощью аффинных преобразований на плоскости или непрерывных деформаций любой треугольник можно преобразовать к единичному симплексу.

Элементы аналитической геометрии


Рис. 13. Приведение произвольного треугольника к единичному симплексу.

 После таких преобразований внутренняя и внешняя области треугольника остаются таковыми. Применив такое преобразование к искомой точке, достаточно затем будет определить ее нахождение во внутренней или внешней области симплекса. Найдем такое преобразование. Координаты векторов единичного базиса совпадают с координатами точек
Элементы аналитической геометрии
 и
Элементы аналитической геометрии
 симплекса, соответственно. Будем считать что точка
Элементы аналитической геометрии
 треугольника совпадает с началом координат.


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

Элементы аналитической геометрии


 Значит для обратного перехода к единичному базису, (на векторах которого построен симплекс), необходимо найти обратную матрицу:

Элементы аналитической геометрии
 .

Умножение радиус-вектора искомой точки на матрицу
Элементы аналитической геометрии
 дает  точку которую достаточно проверить на попадание во внутреннюю или внешнюю область единичного симплекса, как было указано выше.


Содержание раздела