Информационные технологии в САПР. Вычислительные сети и компьютерная графика. Васильев С.А - 24 стр.

UptoLike

[ ] [ ]
=
1
010
001
11
yx
DD
yxyx
или
P
=
PT
(
D
x
,
D
y
), где
=
1
010
001
),(
yx
DD
DyDxT
.
Однородные координаты [23] позволяют все три преобразования (сдвиг, масштабирование и поворот) над 2
D
объектом
реализовать с помощью единственной операции умножения вектора на матрицу, что повышает эффективность работы гра-
фического приложения.
В однородных координатах точка
P
(
x
,
y
) записывается как
P
(
xW
,
yW
,
W
) для любого масштабного множителя
W
0. При
этом если для точки задано её представление в однородных координатах
P
(
X
,
Y
,
W
), то можно найти её двумерные декарто-
вые координаты как
x
=
X
/
W
и
y
=
Y
/
W
. В наших работах
W
всегда равен 1, поэтому операция деления не требуется. Одно-
родные координаты можно представить как вложение пpомасштабиpованной с коэффициентом
W
двумерной плоскости в
плоскость
z
=
W
(здесь
z
= 1) в трёхмерном пространстве.
Масштабирование 2
D
объекта в
S
x
раз по оси
x
и в
S
y
раз по оси
y
определяется уравнениями (рис. 3.2):
=
=
.
;
y
x
Syy
Sxx
Рис. 3.2. Масштабирование Рис. 3.3. Поворот
В однородных координатах матричная форма масштабирования имеет вид
[
]
1yx
=
[
]
1yx
100
00
00
y
x
S
S
или
P
=
P
S
(
S
x
,
S
y
), где
=
100
00
00
),(
y
x
yx
S
S
SSS
.
Поворот 2
D
объекта вокруг центра координат (0, 0) на угол α (рис. 3.3) определяется следующим образом:
α+α=
αα=
).cos()sin(y
);sin()cos(
yx
yxx
В однородных координатах матричная форма поворота имеет вид
[
]
1yx
=
[
]
1yx
αα
αα
100
0)cos()sin(
0)sin()cos(
или
P
=
P
R
(α), где
αα
αα
=α
100
0)cos()sin(
0)sin()cos(
)(R
.
Композиция двумерных преобразований выражается в объединении нескольких 2
D
преобразований.
Например, требуется повернуть 2
D
объект (рис. 3.4) на α градусов относительно произвольной точки
P
1
(
x
1
,
y
1
). По-
скольку известно лишь, как поворачивать двумерный объект вокруг начала координат, разобьём исходную задачу на три
более простых:
P
P
X
Y
x
x
Sx
y
y
Sy
x
x
α
y
y
P
P
X
Y