Рефераты. Задачи графических преобразований в приложениях моделирования с использованием ЭВМ

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

На каждом этапе пишется матрица, соответствующая тому или иному из выделенных выше случаев 1 – 4, обладающих хорошо выраженными геометрическими свойствами.

Выпишнм соответствующие матрицы третьего порядка.

А.  Матрица вращения (rotation)

 


cos j    sin j    0

                                         [ R ] =    -sin j   cos j   0                                                 (3.5)

0        0        1


Б. Матрица растяжения-сжатия (dilatation)

 


a    0    0

                                              [ D ] =     0    d    0                                                      (3.6)

0    0    1


            В.  Матрица отражения (reflection)

 


1    0    0

                                             [ M ] =     0   -1   0                                                      (3.7)

0    0    1


            Г.  Матрица переноса (translation)

 


1    0    0

                                             [ T ] =       0    1    0                                                      (3.8)

l    m    1



Рассмотрим примеры аффинных преобразований плоскости.


Пример 1. Построить матрицу поворота вокруг точки А (a, b) на угол j (рис. 9).



А

 

    0

 

Y

 

X

 
                                                                                                                                                                                    j                                                                    

 




Рис. 8


1-й  шаг. Перенос на вектор – А (-a, -b) для смещения центра поворота с началом координат;

 


1    0    0

                                           [ T-A ] =      0    1    0                                                      (3.9)

-a   -b   1


матрица соответствующего преобразования.

            2-й  шаг. Поворот на угол j;


cos j    sin j    0

                                     [ Rj ] =      -sin j    cos j   0                                              (3.10)

0          0           1


матрица соответствующего преобразования.

3-й  шаг. Перенос на вектор А (a, b) для возвращения центра поворота в прежнее положение;


 


1    0    0

                                           [ TA ] =      0    1    0                                                    (3.11)

a   b    1


матрица соответствующего преобразования.

Перемножим матрицы в том же порядке, как они выписаны:

[ T-A ] [ Rj ] [ TA ].

В результате получим, что искомое преобразование (в матричной записи) будет выглядеть следующим образом:

 


                                          cos j                            sin j                             0

(x*  y*  1)  =  (x  y  1)      -sin j                            cos j                            0     (3.12)      

                                         -a cos j + b sin j + a    -a sin j - b cos j + b   1


Элементы полученной матрицы (особенно в последней строке) не так легко запомнить. В то же время каждая из трех перемножаемых матриц по геометрическому описанию соответствующего отображения легко строится.


            Пример 2. Построить матрицу растяжения с коэффицентами растяжения a вдоль оси абсцисс и b вдоль оси ординат и с центром в точке А (a, b).

            1-й  шаг. Перенос на вектор –А (-a, -b) для совмещения центра растяжения с началом координат;


 


1    0    0

                                           [ T-A ] =      0    1    0                                                    (3.13)

-a   -b   1


матрица соответствующего преобразования.

2-й  шаг. Растяжение вдоль координатных осей с коэффицентами a и b соответственно; матрица преобразования имеет вид


 


a    0    0

                                              [ D ] =     0    d    0                                                    (3.14)

0    0    1


3-й  шаг. Перенос на вектор А (a, b) для возвращения центра растяжения в прежнее положение; матрица соответствующего преобразования:



 


1    0    0

                                           [ TA ] =      0    1    0                                                    (3.15)

a   b    1



Премножив матрицы в том же порядке

[ T-A ] [ D ] [ TA ],

получим окончательно


                                               a                     0                     0

  ( x*  y*  1)   =   (x  y  1)       0                     d                     0                                 (3.16)

                                                (1 - a)a           (1 - d)b           1



Рассуждая подобным образом, то есть разбивая предложенное преобразование на этапы, поддерживаемые матрицами [ R ], [ D ], [ M ], [ T ], можно построить матрицу любого аффинного преобразования по его геометрическому описанию.




4.     Аффинные преобразования в пространстве

Рассмотрим трехмерный случай (3D) (3-dimension) и сразу введем однородные координаты.

Потупая аналогично тому, как это было сделано в размерности два, заменим координатную тройку (x, y, z), задающую точку в пространстве, на четверку чисел

(x  y  z  1)

или, более общо, на четверку

(hx  hy  hz),  h = 0.

Каждая точка пространства (кроме начальной точки О) может быть задана четверкой одновременно не равных нулю чисел; эта четверка чисел определена однозначно с точностью до общего множителя.

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

Любое аффинное преобразование в трехмерном пространстве может быть представленно в виде суперпозиции вращений, растяжений, отражений и переносов. Поэтому вполне уместно сначала подробно описать матрицы именно этих преобразований (ясно, что в данном случае порядок матриц должен быть равен четырем).

А. Матрицы вращения в пространстве.

    Матрица вращения вокруг оси абсцисс на угол  j:

 



           [ Rx ] =

 
1      0            0         0

0       

(4.1)

 
cos j     sin j     0

0    -sin j     cos j    0

0         0         0         1



                  Матрица вращения вокруг оси ординат на угол y:

 



           [ Ry ] =

 
cos y      0   -sin y   0

(4.2)

 
0         1         0         1

Страницы: 1, 2, 3, 4



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.