Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ALL

.pdf
Скачиваний:
278
Добавлен:
12.02.2018
Размер:
15.74 Mб
Скачать

ОТРАЖЕНИЕ ОТНОСИТЕЛЬНО ПРОИЗВОЛЬНОЙ ПРЯМОЙ

Последовательность действий:

1.перемещение линии и объекта, таким образом, чтобы линия прошла через начало координат;

2.поворот линии и объекта вокруг точки начала координат до совпадения с одной из координатных осей;

3.отражение относительно координатной оси;

4.обратный поворот вокруг начала координат;

5.перемещение в исходное положение.

В матричном виде

T T / R R/ R 1 T / 1

где Т' — матрица перемещения, R — матрица поворота вокруг начала координат, R' — матрица отражения.

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

y

p2

 

 

x

 

y*

y**

x**

α x*

 

 

p1

1.перенести начало координат в точку р1

(x*,y*)

2.поворачиваем на угол α (x**,y**)

3.отображаем относительно оси х**

4.поворачиваем на угол - α

5.переносим обратно начало координат

• 1-2, 4-5 это подготовительные операции

• 3 - основная операция

ПРОЕЦИРОВАНИЕ-ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ ОДНОРОДНЫХ КООРДИНАТ

Матрицу преобразования размером 3x3 для двумерных однородных координат

 

можно разбить на четыре части

a

b

 

p

• Где a, b, с и d — коэффициенты

 

d

 

 

масштабирования, вращения, отражения и

 

 

T c

q

 

 

 

сдвига соответственно. Элементы m и n задают

 

 

n

 

 

 

 

m

s

перемещение.

 

 

 

 

 

Мы рассматривали коэффициенты p = q = 0, s = 1. При p = q = 0, s=1, h = 1 геометрически результат интерпретируется как ограничение преобразования физической плоскостью h = 1. В данном случае полезно рассмотреть геометрическую интерпретацию.

Установим величины р и q не равными 0, рассмотрим следующее выражение:

 

 

 

 

 

 

 

 

 

X Y

h hx hy

h x

1

0

p

 

x

y px qy 1 (3)

y 1 0

1

q

 

 

 

 

 

 

0

1

 

 

 

 

 

 

 

0

 

 

 

Здесь X = hx, Y = hy и h = px + qy + 1. Преобразованный координатный вектор, выраженный в однородных координатах, лежит в трехмерном пространстве, определенном как h = рх + qy + 1. Это преобразование показано на рис. 14, где

отрезок АВ, принадлежащий физической плоскости h = 1, преобразуется в CD со значением h 1, т. е. рХ + qY — h + 1 = 0.

ПРОЕЦИРОВАНИЕ-ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ ОДНОРОДНЫХ КООРДИНАТ

Интерес представляют результаты, принадлежащие физической плоскости с h =

,

1, которые можно получить путем геометрического проецирования прямой CD с плоскости h 1 обратно на плоскость h = 1 с использованием для этого проецирующих лучей, проходящих через начало координат.

x*

 

X

y*

Y

 

или в однородных координатах

 

 

 

h

h

 

 

x*

 

h

 

 

 

 

 

 

y*

X Y

1

 

 

 

 

 

 

 

 

 

 

 

 

 

h=1

 

 

 

 

 

h h

 

нормализуя выражение (3) делением

однородных координат на величину h,

 

A

 

 

получаем

 

 

 

 

 

 

 

 

 

 

 

h 1

C

x*

y* h

X

 

Y

1

 

 

x

y

1

C*

 

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

px qy 1

 

 

 

h

 

h

 

px qy 1

 

 

или

x*

X

 

x

 

D

 

h

px qy 1

 

 

 

 

*

 

Y

 

y

 

Рис. 14 Преобразование из физической плоскости

y

h

px qy 1

(h = 1) на плоскость h 1 и проецирование

 

 

 

 

 

 

обратно на физическую плоскость

ПРОПОРЦИОНАЛЬНОЕ МАСШТАБИРОВАНИЕ

Элемент s 3 х 3-матрицы преобразования соответствует пропорциональному масштабированию - все компоненты вектора изменяются пропорционально. Преобразование :

 

 

 

 

 

 

 

 

X Y

h x

1

0

0

 

x

y s

 

y 1 0

1

0

0

где X = х, Y = у и h = s. После нормализации получим X* = x/s и Y* = y/s.

Преобразование [х у 1] [T] = [x/s y/s 1] является равномерным масштабированием координатного h вектора. Если s < 1, то растяжение, а если s > 1 — сжатие.

Это преобразование осуществляется также в

плоскости h = 1. Здесь h = s = const, и поэтому плоскость h 1 параллельна плоскости h = 1. 0 s

Геометрическая интерпретация на рис. 15. Если s < 1, то h = const задает плоскость, лежащую между плоскостями h = 1 и h = 0. т.е., когда прямая АВ проецируется обратно на плоскость h = 1, то А*В* увеличивается

y,y*

D

B*

D* B

C

 

C*

A*

 

A

x,x*

 

 

 

 

 

 

 

 

 

Рис . 15

 

 

 

 

h=1/2

 

 

 

h=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h=2

 

 

 

 

 

Аналогично, если s > 1, то h = const определяет плоскость, расположенную за плоскостью h = 1 и проходящую вдоль оси h. В случае проецирования прямой CD на плоскость h = 1 происходит уменьшение прямой C*D*.

ТОЧКИ БЕСКОНЕЧНОСТИ

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

Рассмотрим пару пересекающихся прямых, заданных уравнениями

х + у = 1

2x - 3у = 0.

Прямые пересекаются в точке с координатами х = 3/5, у = 2/5. Запишем уравнения в виде х + у - 1 = 0, 2х - 3у = 0 и представим их в матричной форме

 

x

y 1

 

1

2

 

0

0

 

X M / R

 

1

3

или

 

 

 

 

 

 

 

 

 

 

 

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ТОЧКИ БЕСКОНЕЧНОСТИ

Если матрица [М/] квадратная, то пересечение может быть получено путем обращения матрицы. Изменим систему исходных уравнений следующим образом:

х + у - 1 = 0,

2х-3у = 0,

1 = 1,

или в матричной форме

[Х][М] = [R],

• т.е.

x

 

1

2

0

0

0 1

 

y 1

1

3

0

 

 

1

0

1

 

 

 

 

 

 

 

 

 

 

Квадратная матрица, обратная данной, имеет следующий вид:

 

 

3

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

5

5

 

 

 

 

 

 

 

 

 

 

 

1 3

2

0

1

1

 

 

1

 

M

 

 

 

 

 

0

 

 

1

1 0

5

5

5

 

 

 

 

 

 

3

2

5

 

3

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

ТОЧКИ БЕСКОНЕЧНОСТИ

Умножая обе части уравнения на [М]-1 и учитывая, что [М][М]-1 = [I] является

тождественной матрицей, получим

 

 

1

 

1

2

0

 

3

2

1

x

y 1

0

0 1 1

3

0

 

 

 

 

 

 

 

5

 

1

0

1

 

5

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, точка пересечения опять имеет координаты х = 3/5, у = 2/5.

Рассмотрим теперь две параллельные прямые, заданные следующим образом:

х + у = 1, х + у = 0. По определению геометрии Евклида, точка пересечения двух параллельных прямых расположена в бесконечности. Продолжая предыдущие

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

форме,

x

 

1

1

0

0

0 1

 

y 1

1

1

0

 

 

1

0

1

 

 

 

 

 

 

 

 

 

 

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

х + у - 1 = 0, х + у = 0, х = х,

 

 

1

1

 

 

 

 

 

 

 

 

 

 

или в матричной форме

x

y 1

1

0 0

x

1

1

0

 

 

 

 

1

0

0

 

 

 

 

 

 

 

 

 

 

 

 

 

ТОЧКИ БЕСКОНЕЧНОСТИ

Таблица 1 Однородные координаты для точки [4 3]

В данном случае матрица не является сингулярной и существует обратная ей

 

1

 

 

 

 

 

M

0

0

1

0

1

1

 

1

1

0

 

 

 

 

 

 

 

• Умножая обе части выражения на обратную матрицу, получаем

h

x*

у*

X

У

1

4

3

4

3

1/2

8

6

4

3

1/3

12

9

4

3

 

 

 

 

1/10

40

30

4

3

 

 

 

 

 

 

 

 

 

1/100

400

300

4

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

y 1 0 0

0

0

1

x

 

0 x 1 1 0

 

x 0 1

1

x

 

 

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Результирующие однородные координаты [1 - 1 0] определяют точку пересечения двух параллельных прямых, т. е. точку бесконечности. В частности, они представляют данную точку в направлении [1 - 1] двумерного пространства. В общем виде двумерный координатный вектор [а b 0] представляет точку бесконечности на прямой ау - bх = 0.

ТОЧКИ БЕСКОНЕЧНОСТИ

Приведем несколько примеров:

[1 0 0] - точка на положительной оси х,

[-1 0 0] - точка на отрицательной оси х,

[0 1 0] - точка на положительной оси у,

[0 -1 0] - точка на отрицательной оси у,

[1 1 0] - вдоль прямой у = х в направлении [1 1].

Вектор с однородной компонентой h = 0 действительно представляет точку бесконечности и может быть также интерпретирован как движение к пределу (табл. 1).

ТОЧКИ БЕСКОНЕЧНОСТИ

Рассмотрим прямую у* = (3/4)x* и точку [X Y h] = [4 3 1]. Напомним, что в однородных координатах не существует единственного представления координатного вектора (табл. 2-1). Точка [4 3 1] представлена в

однородных координатах по всем направлениям. Заметим, что в этой таблице при h 0 отношение у* х* остается равным 3/4, как и требуется для сохранения уравнения. Кроме этого, обратим внимание на то, что следующая пара (х* у*), все точки которой располагаются на линии у* =

(3/4)x*, быстро приближается к бесконечности. Таким образом, предел при h 0 и есть точка бесконечности, заданная в однородных координатах как [X Y h] = [4 3 0].

Обратившись снова к рис. 2-15, легко продемонстрировать геометрическую интерпретацию процесса движения к пределу при h 0.

Рассмотрим отрезок единичной длины, проходящий от точки начала координат в направлении [1 0] на плоскости h = s (s < 1). При s 0 проекция этой прямой обратно на физическую плоскость h = 1 в направлении лучей, проходящих через начало координат, становится бесконечной длины. Следовательно, конечная точка прямой должна представляться точкой бесконечности на оси X.

Соседние файлы в предмете Компьютерная Графика