68909

Преобразование на плоскости

Лекция

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

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

Русский

2014-09-27

85 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

                                

Растяжение или сжатие зависит от значений a и 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 зависит от трёх параметров c,d и .

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

Матрица преобразования после этого становится матрицей размера 2*3

a  b  

c  d    ,

где и вызывает смещение x* и y* относительно x и y.

Поскольку матрица 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.

Прямая OM* пересекает плоскость H=1 в точке M*(x*,y*,1), которая однозначно определяет точку M(x, y) координатной плоскости 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

 

Двухмерное вращение вокруг произвольной точки.

Выше было рассмотрено вращение изображения около начало координат.

Однородные координаты обеспечивают поворот изображения вокруг точек, отличных от начала координат.

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

     –перенос центра вращения в начало координат;

     –поворот относительно начала координат;

     –перенос точки вращения в исходное положение.

Пример: построить матрицу преобразования при повороте на угол   вокруг точки 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;

Пример: построить матрицу преобразования при растяжении вдоль координатных осей с коэффициентами a и 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


 

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

39682. Коммуникаторы и коммуниканты как субъекты коммуникации 63.5 KB
  Исходным понятием для изучения коммуникативной личности понятие личность. Множественность подходов и многообразие теорий и концепций личности раскрывает сложность проблемы обоснования социально значимых признаков личности. Социологическая концепция личности сформировалась в конке 19 в начале 20 века. В зависимости от придаваемой роли стадиям процесса формирования личности различаются подходов в исследовании личности.
39683. АУДИТОРИЯ И КОММУНИКАЦИЯ 28 KB
  Информация пронизывает весь процесс управления все его стадии. В такой системе обратная связь проявляется как реакция на управленческое действие которое осуществляет субъект управления в виде системы информации о состоянии управляемого объекта и его изменении в соответствии с заданной программой. Наличие такой обратной связи позволяет корректировать управленческие действия в процессе управления социальным развитием. Таким способом через обратную связь объект управления воздействует на субъект управления и оперативно оценивается...
39684. Основные этапы развития отечественной отоларингологии 347.5 KB
  Конец эпохи средневековья и период Возрождения характеризуются заметным прогрессом в медицине и прежде всего в развитии анатомии человека в том числе и анатомии уха носа и горла. К первым отечественным руководствам по болезням уха носа и горла следует отнести соответствующий раздел капитального труда по хирургии выдержавшего с 1807 по 1823 г. описана операция на лобных пазухах носа. Основой объединения болезней уха носа и горла в специальную дисциплину явилось анатомотопографическое единство этих органов их тесная физиологическая и...
39685. Проектирование технологических процессов 1.21 MB
  Задачами технологического проектирования являются определение условий изготовления изделий определение типа производства видов исходных заготовок проектирование технологического маршрута обработки выявление необходимых средств производства и порядка их применения определение себестоимости и трудоемкости изготовления изделий определение исходных данных для календарного планирования для организации технического контроля определение состава рабочей силы. Руководящая информация включает: стандарты устанавливающие требования к...
39686. ОСНОВЫ ПРОЕКТИРОВАНИЯ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ В МАШИНОСТРОЕНИИ 70 KB
  Общие принципы технической подготовки производства Рациональная организация производственного процесса невозможна без проведения тщательной технической подготовки производства. Техническая подготовка производства включает в себя следующее. 1 Конструкторскую подготовку производства.
39687. Расчетный метод определения точности 465 KB
  Блоксхема факторов влияющих на качество обрабатываемой заготовки на настроенном станке в общем виде представлена на рис. К числу первичных погрешностей обработки относятся: погрешность установки заготовки; погрешность от упругих деформаций технологической системы; погрешность настройки станка; погрешность от износа режущего инструмента; погрешность изза геометрической неточности станка и изготовления режущего инструмента; погрешность изза температурных деформаций системы; погрешность изза остаточных напряжений в заготовке....
39688. Современные перспективные направления повышения точности 61 KB
  Все сказанное определяет виртуальный образ технологической системы. Следовательно технологическая система станка должна быть оснащена соответствующими вычислительными средствами возмещающими деятельность человека и соответствующую часть технологической системы. Вычислительная система станка кроме традиционных задач управления процессом обработки должна выполнять следующие задачи: оценку точностных возможностей технологической системы на основе информации полученной подсистемами диагностики состояния станка и инструмента; оценку...
39690. Поднастройка станков. Автоматическое управление точностью в процессе обработки 134 KB
  Автоматическое управление точностью в процессе обработки Для обеспечения требуемой точности обработки партии заготовок недостаточно правильно осуществить настройку станка. Под влиянием погрешностей в процессе обработки происходит смещение поля рассеивания размеров деталей к границе допуска. Задача состоит в том чтобы обеспечить необходимую точность обработки в пределах поля допуска и иметь наименьшее количество поднастроек. Для повышения точности и производительности обработки необходимо или уменьшать составляющие погрешности обработки т.