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


 

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

65350. ВИКОРИСТАННЯ ПОЖИВНИХ РЕЧОВИН ТА ПРОДУКТИВНІ ЯКОСТІ МОЛОДНЯКУ КРОЛІВ ЗА РІЗНИХ РІВНІВ ПРОТЕЇНУ ТА ЛІЗИНУ В КОМБІКОРМАХ 277.5 KB
  Співвідношення поголів’я самців і самок у кожній з груп становило 1:1 10 самців і 10 самок яких утримували окремо. При формуванні групаналогів враховували вік стать живу масу і походження тварин.
65351. Технологічна спадковість в процесах листового штампування при створенні безпечних конструкцій 7.94 MB
  Для досягнення поставленої мети були сформульовані такі завдання: розробити експериментально-розрахунковий метод визначення енергії пластичного деформування листових матеріалів в процесах холодного штампування а також енергопоглинання...
65352. МАРГІНАЛЬНА ПОВЕДІНКА ОСОБИ: ТЕОРЕТИКО-ПРАВОВИЙ АСПЕКТ 142 KB
  Проблема маргінальної поведінки особи та маргіналізації суспільства виступає постійним явищем існування людської історії а її гострота безпосередньо пов’язана з тими суспільними процесами які притаманні певній соціальній спільності...
65353. МІКРОКОМПОНЕНТНИЙ СКЛАД ПИТНИХ ПІДЗЕМНИХ ВОД ВОДОЗАБОРІВ МАЛИХ МІСТ ХАРКІВЩИНИ 1.21 MB
  Техногенне навантаження на навколишнє середовище в цілому та геологічне середовище, зокрема, відноситься до важливих екологічних проблем. Однією з таких актуальних проблем є вплив техногенного навантаження на геохімічний стан підземних вод...
65354. ОЗДОБЛЮВАЛЬН МОДИФІКОВАНІ БУДІВЕЛЬНІ РОЗЧИНИ НА ОСНОВІ БІЛОГО ПОРТЛАНДЦЕМЕНТУ 849 KB
  При використанні сучасних розчинів які мають досить значну номенклатуру за рахунок широкого впровадження технології сухих будівельних сумішей модифікованих СБСМ існує певне обмеження у застосуванні складів на основі білого портландцементу ПЦБ для оздоблення...
65355. АНАЛІЗ ТА МЕТОДИ УПРАВЛІННЯ РЕЖИМАМИ ЕЛЕКТРИЧНИХ СИСТЕМ З ГНУЧКИМИ ПЕРЕДАЧАМИ ЗМІННИМ СТРУМОМ 262.5 KB
  Сьогодні в світі електроенергетики спостерігаються протиріччя між ринковими економічними відносинами та надійністю режимів роботи електричних систем. Економічні перетворення, що відбуваються у вітчизняній електроенергетиці...
65356. ГІДРОІМПУЛЬСНИЙ ПРИВОД МЕМБРАННОГО НАСОСНОГО АГРЕГАТУ ДЛЯ ПЕРЕКАЧУВАННЯ ВИСОКОВ’ЯЗКИХ, АГРЕСИВНИХ ТА АБРАЗИВОВМІСНИХ СЕРЕДОВИЩ 235.5 KB
  Використання гідроімпульсних приводів для насосних агрегатів у вищезазначених галузях промисловості суттєво поліпшить вихідні параметри та характеристики вже морально застарілих та малоефективних приводів насосів а саме...
65357. Удосконалення методу оцінки характеристик вихідного сигналу ферозонда при контролі дефектів суцільності феромагнітних виробів 675.5 KB
  Також існує необхідність у методиці розрахунків вихідного сигналу ферозонда що вимірює поле дефекту йдеться про методику яка могла б урахувати не тільки параметри ферозонда але й вплив на функцію перетворення ферозонда...
65358. Програмно-педагогічне забезпечення міжпредметних зв’язків інформатики з математикою і фізикою у навчанні майбутніх інженерів 322.5 KB
  Сучасна комп’ютерна техніка розвивається стрімкими темпами, а також плідно взаємодіючи з фізикою, математикою, біологією та іншими науками. Створюються нові інформаційні технології, програмні засоби, що дозволяють моделювати різні явища.