ВУЗ:
Составители:
Матричное представление формул преобразования
Приведем формулы линейных преобразований:
в пространстве на плоскости
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 ,
Страницы
- « первая
- ‹ предыдущая
- …
- 15
- 16
- 17
- 18
- 19
- …
- следующая ›
- последняя »