Методическое пособие по курсу "Интерактивные графические системы". Найханов В.В - 17 стр.

UptoLike

Матричное представление формул преобразования
Приведем формулы линейных преобразований:
в пространстве на плоскости
x` = a
1
x + b
1
y + c
1
z + d
1
, x` = a
1
x + b
1
y + d
1
,
y` = a
2
x + b
2
y + c
2
z + d
2
, y` = a
2
x + b
2
y + d
2
,
z` = a
3
x + b
3
y + c
3
z + d
3
.
Для реализации на ЭВМ удобнее представить их в матричном виде.
Матричная форма записи преобразований позволяет представлять
последовательность различных преобразований в виде единого
преобразования ( совмещение преобразований ) .
Конструктор должен иметь возможность увеличивать масштаб
изображения фигуры, чтобы подробнее рассмотреть на экране дисплея
интересующую его часть изображения или вращать изображение на экране
и рассматривать
его со всех сторон.
Рассмотрим одновременно двумерные и трехмерные преобразования,
позволяющие легко вычислить координаты новой точки ( x`, y`, z` ) по
координатам ( x , y , z ) исходной точки:
[ x` y` z` 1 ] = [ x y z 1 ]
1ddd
0cc
0bbb
0aaa
321
321
321
321
c
; [ x` y` 1 ] = [ x y 1 ]
1
0
0
21
21
21
dd
bb
aa
.
Добавление единичного элемента не меняет сути формул, однако, позволяет
получить квадратную матрицу, с которой легко производить вычисления
(умножение) матриц.
Частные виды преобразований:
1.
Перемещение. Преобразование перемещения ( сдвига ) исходной
точки ( x , y , z ) в новое положение ( x`, y`, z` ) выражается в следующей
форме:
[ x` y` z` 1 ] = [ x y z 1 ]
ΤΤΤ 1
0100
0010
0001
zyx
; [ x` y` 1 ] = [ x y 1 ]
ΤΤ 1
010
001
yx
,
где
x
Τ ,
y
Τ
,
z
Τ - величины перемещения в направлениях x , y и z
соответственно .
2. Вращение
. Поворот точки ( x , y ) в двумерном преобразовании на
угол
ϕ по часовой стрелке относительно начала координат определяется по
формуле :
[ x` y` 1 ] = [ x y 1 ]
100
0cossin
0sincos
ϕϕ
ϕϕ
.
Вращение в комбинации с перемещением можно использовать для
вращения точек плоской фигуры вокруг любой точки. Например , точка ( x ,
                   Матричное представление формул преобразования

       Приведем формулы линейных преобразований:
           в пространстве                 на плоскости
         x` = a1x + b1y + c1z + d1 ,     x` = a1x + b1y + d1 ,
         y` = a2x + b2y + c2z + d2 ,     y` = a2x + b2y + d2 ,
         z` = a3x + b3y + c3z + d3 .

       Для реализации на ЭВМ удобнее представить их в матричном виде.
Матричная форма записи преобразований позволяет представлять
последовательность различных преобразований         в виде единого
преобразования ( совмещение преобразований ) .
       Конструктор должен иметь возможность увеличивать масштаб
изображения фигуры, чтобы подробнее рассмотреть на экране дисплея
интересующую его часть изображения или вращать изображение на экране
и рассматривать его со всех сторон.
       Рассмотрим одновременно двумерные и трехмерные преобразования,
позволяющие легко вычислить координаты новой точки ( x`, y`, z` ) по
координатам ( x , y , z ) исходной точки:
                             ⎡a1 a 2      a3    0⎤
                             ⎢b b                                                   ⎡ a1        a2     0⎤
                                          b3    0⎥⎥
[ x` y` z` 1 ] = [ x y z 1 ] ⎢ 1 2                  ;      [ x` y` 1 ] = [ x y 1 ] ⎢⎢ b1        b2     0⎥⎥ .
                             ⎢ c1 c2      c3    0⎥
                             ⎢                    ⎥                                 ⎢⎣d1        d2     1⎥⎦
                             ⎣d 1 d 2     d3    1⎦
Добавление единичного элемента не меняет сути формул, однако, позволяет
получить квадратную матрицу, с которой легко производить вычисления
(умножение) матриц.
       Частные виды преобразований:
       1. Перемещение. Преобразование перемещения ( сдвига ) исходной
точки ( x , y , z ) в новое положение ( x`, y`, z` ) выражается в следующей
форме:
                              ⎡1     0     0     0⎤
                              ⎢0                                                 ⎡1        0         0⎤
                                     1     0     0⎥⎥                             ⎢                     ⎥
 [ x` y` z` 1 ] = [ x y z 1 ] ⎢                      ;   [ x` y` 1 ] = [ x y 1 ] ⎢ 0       1         0⎥ ,
                              ⎢0     0     1     0⎥
                              ⎢                    ⎥                             ⎢Τx       Τy        1⎥⎦
                                                                                 ⎣
                              ⎣⎢Τx   Τy    Τz    1⎦⎥
где Τx , Τy , Τz - величины перемещения в направлениях x , y и z
соответственно .
       2. Вращение. Поворот точки ( x , y ) в двумерном преобразовании на
угол ϕ по часовой стрелке относительно начала координат определяется по
формуле :
                                                      ⎡cos ϕ    − sin ϕ   0⎤
                             [ x` y` 1 ] = [ x y 1 ] ⎢⎢ sin ϕ    cos ϕ    0⎥⎥ .
                                                      ⎢⎣ 0         0      1⎥⎦
Вращение в комбинации с перемещением можно использовать для
вращения точек плоской фигуры вокруг любой точки. Например , точка ( x ,