68886

Перетворення на площині

Лекция

Информатика, кибернетика и программирование

Представлення графічних зображень здійснюється крапками і лініями. Можливість перетворення крапок і ліній є основою комп’ютерної графіки. При використанні комп’ютерної графіки можна змінювати масштаб зображення, обертати його, зміщувати і трансформувати для поліпшення наочності зображення об’єкту.

Украинкский

2014-09-26

83.5 KB

1 чел.

ЛЕКЦІЯ 6

Перетворення на площині

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

Можливість перетворення крапок і ліній є основою комп'ютерної графіки. При використанні комп'ютерної графіки можна змінювати масштаб зображення, обертати його, зміщувати і трансформувати для поліпшення наочності зображення об'єкту.

Аффінне перетворення на площині.

У комп'ютерній графіці все, що відноситься до двомірного випадку, позначається символом 2d (2-dimension).

Користуватимемося декартовою системою координат - це зручний спосіб скріплення геометричного об'єкту (т.м) - з числами X, Y - її координатами, які дозволяють кількісно описувати геометричні фігури.

y                                                           y             y*        x*

         M (x, y)         

                    M* (x*, y*)                                     M (x, y)

                         x                                                              x

                                                                                               

У декартовій системі координат перетворення можна розглядати двояко:

         -змінюється положення крапки, а система координат та ж;

         -зберігається крапка, а змінюється координатна система.

Надалі розглядатимемо перший випадок: у заданій системі прямокутних координат перетвориться точка площини.

 Перетворені координати описуються співвідношеннями:

          X* = ax + by + ;

          Y* = cx + dy + ;    загальне аффінне перетворення,

      де a, b, c, d, , довільні числа.

Для переміщення крапки на площині необхідно описати закон зміни її координат.

Існує декілька окремих випадків перетворень, використовуючи які досягається необхідні переміщення на площині. Такими перетвореннями є:

       -паралельне перенесення;

       -обертання;

        -зеркальне відображення;

        - розтягування або стискування.

Вибір цих випадків визначається двома обставинами:

  -кожне з приведених перетворень має простий і наочний геометричний сенс;

  -будь-яке перетворення на площині можна представити як послідовне виконання (суперпозицію) простих перетворень: паралельне перенесення, обертання, розтягування і віддзеркалення.

1) Паралельне перенесення.

       Y                                                     y  

                                M*                                              M*

                                                                   M   

               

                      M                                                         O*  

                                   X                        O                            X

Переводить крапку С з координатами X і Y в точку М* з координатами X* і Y*.

     X* = x + ;

     Y* = y + ;

Приклад: переміщення прямої на площині

2). Дзеркальне віддзеркалення.

     y                                                                 y

                    M                              M*               M

                          x                                                              x

                    M*

       x* = +x;                                               x* = –x;

       y = –y;                                                 y* = y;

  щодо осі абсцис           щодо осі ординат

3) Розтягування (стискування)

     y                                                        y                             

                    M                                                     M*              x* = a * x;

                                                                                                  y* = d * y;

             M*                                                  M

                                 x                                                        x

                                

Розтягування або стискування залежить від значень а і d.

                M

                      M*

                                 x

      O

Якщо a>1 і d<1, то прямокутник розтягується по Х і стискується

  по Y.

Якщо a>1 і d>1, то прямокутник розтягується по X і Y.

Для ефективного використання цих відомих формул в комп'ютерній графіці  зручніше користуватися матричним записом:

      -значення координат точки М можна розглядати як                                                                               

елементи матриці [x, y] - вектор-рядок або        x   – вектор-стовпець.

                                                                               y

      -так розтягування:

       a   0      x        x*                x* = a * x;

       0   d      y   =   y*                y* = d * y;

              віддзеркалення:

    x      1   0                               x* = x;

    y      0  -1     вісь абсцис      y* = –y;

    x      -1  0                               x* = –x;

    y       0  1      вісь ординат     y* = y;

4) Обертання                                                         

Перед отриманням матриці обертання розглянемо перетворення одиничного квадрата .

 y

                                            0   0    – т. А

 D            C                       1    0    – т. В

                                            1   1    – т. С

                                            0   1    – т. D

 A            B             x

Застосування загального матричного перетворення  до одиничного квадрата приводить до наступного результату:

a   b    

c  d

0  0                     0      0                A*

1  0    a  b           a       b                B*

1  1    c  d    =   a+c  b+d              C*

         0  1                     c       d                D*

Результати:

-початок координат не піддається перетворенню; A=a*=[0 0]

-координата В* визначається першим рядком загальної матриці перетворення;

-координата D* визначається другим рядком загальною матрицею перетворення.

Таким чином, якщо координати точка В* і точка D* відомі, то загальна матриця перетворення визначена.

Розглянемо обертання одиничного квадрата навколо початку координат. Обертання проти годинникової стрілки береться за позитивне.

               y

                                                 BB* ;                 x* = 1 * cos

                    C*                                                      y* = 1 * sin

                                                   D – D* ;               x* = -1 * sin

D*                                     C                                    y* = 1 *  cos

                                   B*

                          

                          

               A  A*              B               x

Загальну матрицю обертання можна записати:

              

   x  y     cos   sin                           x* = x * cos – y * sin;

             -sin  cos                            y* = x * sin + y * cos;

Таким чином, отримали:

обертання(rotation)

x         cos    -sin                          x* = x * cos – y * sin;                 

        y         sin       cos                        y* = x * sin + y * cos;

- розтягування (dilatation)

          x      a  0                          x* =a*x; 

          y      0  d                          y*= d*y;

віддзеркалення(reflection)

          x      1   0                        x* =x;              по осі абсцис

          y      0  -1                        y* = -y;

перенесення(translation);            x* = x +  

                                                    y* = y +

Кожне з приведених перетворень координат можна так само описати формулами:

    x* = ax + by + ;

    y* = cx + dy + ;  – загальні аффінні перетворення;

–при a=d=1 и b=c=0 – отримуємо перенесення;

–при a=d=cos и –b=c=sin, ==0 – обертання;

–при a=1, d=–1, c=b==віддзеркалення;

–при b=c==розтягування (стискування);

У матричному описі основних перетворень відсутня операція паралельного перенесення, тобто за допомогою матриці описані:

        x* = ax + by;

        y* = cx + dy; – відсутні.

 і  , а зміна координати по X залежить від трьох параметрів                     

a,b, і по Y залежить від трьох параметрів с, d і .

Значить, щоб охопити матричним підходом чотири прості перетворення, необхідно перейти до опису довільної крапки не парою чисел (x,y), а трійкою чисел [x,y,1] і [x*,y*,1]

Матриця перетворення після цього стає матрицею розміру 2*3

a  b  

c  d    ,

де  і  викликає зсув x* і y* відносно x і у.

Оскільки матриця 2*3 не є квадратною, то вона не має зворотної матриці.

Тому її доповнюють до квадратної, розміру 3*3.

         a  b  

         c  d      – третя компонента векторів положення крапок не                 

0  0  1               змінює.

              

     Використовуючи цю матрицю

          x        a  b          x*

          y        c  d     =  y*

          1        0  0  1       1

отримуємо перетворений вектор [x*, y*, 1].

У загальному випадку [X, Y, H].

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

           [X, Y, H] = [x*, y*, 1]

Перетворення, що має місце в тривимірному просторі, в нашому випадку обмежено площиною H=1.

Пряма OМ* перетинає площину H=1 в точці M*(x*,y*,1), яка однозначно визначає точку M(x, у) координатної площини XY.

Представлення двомірного вектора тривимірним або в загальному випадку n-вимірного вектора (n+1) -вимірним називають однорідним координатним відтворенням.

У однорідних координатах запис буде у вигляді:

                                 a  c  0

[x, y, H]=[x, y, 1] *   b  d  0

                                               1   ,

де x = x*, y = y*, H = 1.

У загальному випадку H не дорівнює 1 і перетворені звичайні координати виходять за рахунок нормалізації однорідних координат, тобто

                 X* = x/H;  Y* = y/H.

Основна матриця перетворення розміру для однорідних двомірних координат має вигляд:

a  b  

c  d  

m  n  s

І може бути розділена на чотири частини

a, b, c, d – здійснює зміну масштабу, зрушення і обертання;

 і виконує зсув;

m і nотримання проекції;

sпроводить повну зміну масштабу.

Оскільки при H, яке не дорівнює, ми отримуємо зображення в тривимірному просторі, то для простоти обчислень в 2d використовуваний H=1 і матрицю узагальнену на чотири перетворення:

x*      x        a  b                   x* = ax + by + ;

y*  =  y   *    c  d                  y* = cx + dy + ;

1        1        0  0  1                         1 = 1.

Для того, щоб реалізувати те або інше переміщення по заданих геометричних характеристиках, треба знайти елементи відповідної матриці, використовується матриці:

-обертання (rotation):

       cos  -sin  0                               cos   sin    0

       sin   cos  0        зворотна       -sin  cos   0

        0        0      1                                   0       0       1

розтягування (dilatation):

    a  0  0                                 1/a  0    0                x* = ax;

    0  d  0           зворотна        0  1/d  0                y* = dy;

    0  0  1                                   0   0   1

 

віддзеркалення (reflection):

     1  0  0                         1   0  0                           x* = x;

     0 –1 0      зворотна    0 –1  0                          y* = -y;

     0  0  1                          0  0  1

перенесення (translation):

     1  0                           1  0  -                          x* = x + ;

     0  1       зворотна     0  1 -                          y* = y + .

     0  0  1                          0  0  1

 

Двомірне обертання навколо довільної крапки.

Вище було розглянуто обертання зображення біля початок координат.

Однорідні координати забезпечують поворот зображення навколо крапок, відмінних від початку координат.

У загальному випадку алгоритм обертання навколо довільної крапки наступний:

     -перенос центру обертання в початок координат;

     -поворот відносно початку координат;

     -перенос точки обертання в початкове положення.

Приклад: побудувати матрицю перетворення при повороті на кут  j навколо точки M(m,n), не співпадаючої з початком координат.

           Y

                        

                       M

                                         x

1) Перенесемо площину на вектор M(-m, -n) для поєднання точки повороту з початком координат:

                   1  0  -m

         T_=    0  1  -n

                   0  0   1

2) Поворот на кут :

            cos  -sin  0

     R=  sin   cos  0

              0        0      1

3).Перенесем площину на вектор M(m, n) для обертання точки повороту в початок координат:

             1  0  m

      T=   0  1  n

             0  0  1

Результуюча матриця:

                            1  0  m         cos  -sin  0

M=T * R * T_=    0  1  n     *   sin    cos 0    =  

                            0  0  1            0         0     1

         

      cos  -sin  m         1  0  -m         cos  -sin   -mcos + nsin + m

 =   sin    cos  n     *    0  1  -n   =    sin    cos  -msin – ncos + n    

        0         0      1          0  0   1            0         0                    1                    

    x*       x

    y*   =  y   *  M

    1         1        

                   T * R –T_

 X* = xcos – ysin – mcos + nsin + m;

 Y* = xsin + ycos – msin – ncos + n;

Приклад: побудувати матрицю перетворення при розтягуванні уздовж координатних осей з коефіцієнтами а і d.

                     1  0  -m

 1).    T_ =    0  1  -n    

                     0  0  1       

 

                     a  0  0

 2).    D =      0  d  0

                     0  0  1      

                   1  0  m

 3).    T =    0  1  n

                   0  0  1        

                1  0  m         -a  0  0          1  0  -m

      M=     0  1  n    *     0  d  0     *    0  1  -n    ;

                0  0  1           0  0  1          0  0  1          

                   a   0   -am + m

          M=   0   d   -dn + n

                   0   0         1


 

А также другие работы, которые могут Вас заинтересовать

37364. ОБОРУДОВАНИЕ УЧАСТКА ЖЕЛЕЗНОЙ ДОРОГИ СИСТЕМОЙ АВТОБЛОКИРОВКИ С ТОНАЛЬНЫМИ РЕЛЬСОВЫМИ ЦЕПЯМИ И ЦЕНТРАЛЬНЫМ РАЗМЕЩЕНИЕМ ОБОРУДОВАНИЯ ТИПА АБТЦ-03 60.02 KB
  Для управления и правильного пользования сигналами раздельные пункты станции ограничивающие перегон оборудуют блокировочными аппаратами и релейными приборами и связывают их электрически между собой двухпроводной линейной цепью. От этого сигнала срабатывает релейная аппаратура ПАБ которая обеспечивает зависимость по управлению светофором. На железных дорогах используются в основном релейные системы ПАБ Гипротранссигналсвязи РПБ ГТСС. В релейных системах все блокировочные зависимости и необходимые замыкания осуществляются с помощью реле...
37365. Оборудование промежуточных станций электрической централизацией стрелок и сигналов 57.23 KB
  Задача курсового проекта заключается в разработке системы электрической централизации по заданному плану станции для данной горловины. В курсовом проекте используется блочная маршрутно-релейная централизация, так как она обеспечивает маршрутное управление, что обеспечивает сокращение времени на установку маршрута и так же позволяет повысить производительность труда.
37366. Строительство здания на основе проэкта Доступное и комфортное жилье — гражданам России 83 KB
  Наша область одна из первых в России начала формировать систему градостроительной деятельности соединяющую электронные топографические карты со справочной аналитической и другой информацией для создания топографической основы территорий.1 Объемнопланировочное решение здания. Общая высота здания 72м.2 Конструктивное решение здания.
37367. Расчет грузового барабана лебедки 2.83 MB
  Определение коэффициентов относительной ширины колес Для несимметричного расположения колес относительно опор коэффициенты относительной ширины колес для тихоходной и быстроходной ступеней при твердости ≥350 НВ назначаются из интервала [1 табл. Расчет эквивалентного времени работы Эквивалентное время работы Lhe назначают с учетом категории режима работы по ГОСТ 2135487 и находится по формуле: Lhe = h Lh где Lh заданный срок службы час; h коэффициент эквивалентности зависящий от режима нагрузки. Геометрические расчеты...
37368. Проектирование привода к вертикальному валу цепного конвейера 13.07 MB
  Повышение эксплуатационных и качественных показателей, сокращение времени разработки и внедрения новых машин, повышение их надежности и долговечности - основные задачи конструкторов-машиностроителей. Одним из направлений решения этих задач является совершенствование конструкторской подготовки студентов высших технических учебных заведений.
37369. Выполнить синтез автомата Мили, осуществляющего отображение информации 701 KB
  Для их устранения используют развязывание пар переходов. Развязанными считаются такие пары которые в одном из разрядов кода состояния принимают противоположные значения. Для развязывания пар переходов последовательно рассматривают все пары подлежащие развязыванию и в каком либо разряде кода состояний им присваивается противоположное значение. Если в данном разряде это сделать нельзя то вводится новый разряд пока не будут развязаны все пары.
37370. Управления параболической антенной по углу наклона с помощью мехатронных систем 2.05 MB
  Мехатроника — это новая область науки и техники, посвященная созданию и эксплуатации машин и систем с компьютерным управлением движением, которая базируется на знаниях в области механики, электроники и микропроцессорной техники, информатики и компьютерного управления движением машин и агрегатов. Мехатроника является научно-технической дисциплиной, которая изучает построение электромеханических систем нового поколения, обладающих принципиально новыми качествами и, часто, рекордными параметрами.
37371. Стабилизация частоты вращения вала газовой турбины с помощью мехатронных систем 2.24 MB
  Выбор и обоснование схемы привода стабилизации частоты вращения вала газовой турбиной Схема привода стабилизации частоты вращения вала газовой турбины с помощью баипаса. Системы управления газовых турбин должны сохранять управляемость во всем диапазоне тепловой мощности турбины.Типовая схема газовой турбинной группы Газ от источника проходит к ступени высокого давления паровой турбины через два главных паровых регулирующих клапана поз.
37372. Стабилизация частоты вращения вала паровой турбины с помощью мехатронных систем 2.78 MB
  Паровая турбина В данном курсовом проекте рассматривается тема стабилизация частоты вращения вала паровой турбины с помощью мехатронных систем.1Схема привода стабилизации частоты вращения вала паровой турбины с помощью баипаса. В сравнении с газовыми турбинами системы управления паровых турбин должны сохранять управляемость во всем диапазоне тепловой мощности турбины.Типовая схема паровой турбинной группы Пар от источника проходит к ступени высокого давления паровой турбины через два главных паровых регулирующих клапана поз.