Подобный материал:
- Новосибирский Государственный Технический Университет. Факультет автоматики и вычислительной, 1650.9kb.
- Рабочая программа для специальности: 220400 Программное обеспечение вычислительной, 133.96kb.
- Государственный Технический Университет. Факультет: Автоматики и Вычислительной Техники., 32.46kb.
- Образования Республики Молдова Колледж Микроэлектроники и Вычислительной Техники Кафедра, 113.64kb.
- Постоянное развитие и углубление профессиональных навыков в области информационных, 54.56kb.
- «Программное обеспечение вычислительной техники и автоматизированных систем», 1790.14kb.
- Задачи дисциплины: -изучение основ вычислительной техники; -изучение принципов построения, 37.44kb.
- Лекция №2 «История развития вычислительной техники», 78.1kb.
- Система контроля и анализа технических свойств интегральных элементов и устройств вычислительной, 582.84kb.
- Московский государственный инженерно-физический институт (технический университет), 947.05kb.
0.1.2 Двумерные преобразования в однородных координатах
Как видно из (
2), (
4) и (
6) двумерные преобразования имеют различный вид. Сдвиг реализуется сложением, а масштабирование и поворот - умножением. Это различие затрудняет формирование суммарного преобразования и устраняется использованием двумерных однородных координат точки, имеющих вид:
Здесь w - произвольный множитель не равный 0.
Двумерные декартовые координаты точки получаются из однородных делением на множитель w:
Однородные координаты можно представить как промасштабированные с коэффициентом w значения двумерных координат, расположенные в плоскости с Z = w.
В силу произвольности значения w в однородных координатах не существует единственного представления точки, заданной в декартовых координатах.
Преобразования сдвига, масштабирования и поворота в однородных координатах относительно центра координат все имеют одинаковую форму произведения вектора исходных координат на матрицу преобразования.
Для сдвига
| |
|
|
| | = | | |
|
| | · | | |
|
| | . | | (0.1.9) |
Для масштабирования
| |
|
|
| | = | |
|
|
| | · | |
|
|
| | . | | (0.1.10) |
Для поворота
| |
|
|
| | = | |
|
|
| | · | |
|
|
| | . | | (0.1.11) |
Как видно из (
9) - (
11), wn = w, а матрица преобразования для двумерных однородных координат в общем случае имеет вид:
где элементы A, B, D и E определяют изменение масштаба, поворот и смещение, а L и M определяют сдвиг. Покажем, что элемент S определяет общее изменение масштаба, а элементы P и Q определяют проецирование.
Рассмотрим вначале для этого преобразование
| |
|
|
| | = | | |
|
| | · | | |
|
| | . | |
Легко видеть, что xn = x, yn = y, h = S. Таким образом двумерные декартовые координаты преобразованной точки
Xn = xn / h = x / S, Yn = yn / h = y / S, | |
т.е. такое преобразование задает изменение масштаба вектора положения точки. При S < 1 выполняется уменьшение, а при S > 1 - увеличение.
Для уяснения смысла третьего столбца матрицы преобразований (
12) выполним преобразование
| |
|
|
| | = | | |
|
| | · | | |
|
| | = | | |
|
| | . | |
Здесь xn = x, yn = y, h = Px + Qy + 1, т.е. переменная h, которая определяет плоскость, содержащую преобразованные точки, представленные в однородных координатах, образует теперь уравнение плоскости в трехмерном пространстве:
Получим результирующие двумерные декартовые координаты Xn, Yn для преобразованной точки
Xn = | x
Px + Qy + 1 | , Yn = | y
Px + Qy + 1 | . | |
Это соответствует вычислению их в плоскости Z = 1, т.е. проецированию из плоскости (
13) в плоскость Z = 1. Легко показать, что центр проецирования находится в начале координат. Рассмотрим для этого параметрические уравнения прямой, проходящей через точки (X
0, Y
0, 1) и (X, Y, (MX+NY+1) ):
Из условия X(t) = X
0 = 0 находим t = 1/(1 - h), подставляя это значение t в выражения для Y(t) и Z(t), получим:
Y0 = y/h + (y - y/h)/(1-h) = y/h - y/h = 0. | |
Z0 = 1 + (h-1)/(1-h) = 0. | |
Итак, показано, что элементы P и Q матрицы (
12) определяют проецирование с центром проекции в начале координат.
Кроме удобств, связанных с единообразным представлением преобразований, и, следовательно, с упрощением композиции преобразований, рассматриваемой в следующем пункте, однородные координаты дают возможность простого представления точек, имеющих в декартовой системе значение координаты, равное бесконечности.
Декартовые точки с бесконечными координатами
Рассмотрим в декартовой системе линию, проходящую через начало координат и точку (X,Y). Однородные координаты этой точки - (x,y,h) = (hX, hY, h), где h имеет произвольное значение. Предел отношения x/y при h стремящимся к 0 равен X/Y, но при этом декартовые координаты стремятся к бесконечности. Таким образом, точка с однородными координатами
задает в декартовой системе точку на бесконечности для рассмотренной прямой. В частности, точка с однородными координатами (1, 0, 0) задает бесконечную точку на декартовой оси X, а точка с однородными координатами (0, 1, 0) задает бесконечную точку на декартовой оси Y.
Параллельные прямые
Покажем, что прямые, параллельные в декартовой системе координат, в однородных координатах имеют точку пересечения. Эта особенность далее будет использована при анализе перспективных преобразований.
Пусть две пересекающиеся прямые в декартовой системе координат заданы системой уравнений:
Решая эту систему относительно X и Y, найдем координаты точки пересечения
X0 = | C1 ·B2-C2 ·B1
A1 ·B2-A2 ·B1 | . | |
Y0 = | A1 ·C2-A2 ·C1
A1 ·B2-A2 ·B1 | . | |
Запишем результат в однородных координатах
| |
| C1 ·B2-C2 ·B1
A1 ·B2-A2 ·B1 | , | A1 ·C2-A2 ·C1
A1 ·B2-A2 ·B1 | , 1 | | . | |
В силу произвольности масштабного множителя, умножим значения координат на (A
1 ·B
2 - A
2 ·B
1)
(C1 ·B2-C2 ·B1, A1 ·C2-A2 ·C1, A1 ·B2-A2 ·B1). | |
Если прямые параллельны, то определитель системы (
16) - (A
1 ·B
2-A
2 ·B
1) равен нулю. Учитывая это и обозначая x
0 = (C
1 ·B
2-C
2 ·B
1), y
0 = (A
1 ·C
2-A
2 ·C
1), получим координату пересечения параллельных прямых в однородной системе координат
При этом точка пересечения лежит на прямой -y
0 ·x + x
0 ·y = 0 на бесконечности.