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


 

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

32076. Прикладные аспекты в социальной психологии 45.5 KB
  Чтобы проанализировать основные линии возможного приложения сп знаний нужно знать специфику прикладного исследования. Прикладные исследования в различных областях науки обладают рядом общих черт. Специфика прикладного исследования в социальной психологии. : различные области народного хозяйства и культуры финансируют сп исследования и создают благоприятные возможности для развития науки; СП не готова ответить на некоторые вопросы поставленные практикой мало теории но в условиях острой общественной потребности она дает эти ответы...
32077. Межличностные конфликты в малой группе. Петровская 68.5 KB
  Структура конфликта. стороны участники конфликта отдельные индивиды социальные группы и организации государства; участники конфликта характеризуются в первую очередь мотивами целями ценностями установками и пр. условия протекания конфликта социальнопсихологическая среда разл группы с их специфической структурой динамикой нормами ценностями и т. возможные действия участников конфликта участники конфликта в действиях передают противостоящей стороне свои намерения оценки и демонстрируют свои возможности.
32078. Психология рекламы и маркетинга 58.5 KB
  Пси рекламы и маркетинга. Основные аспекты работы социального психолога в сфере рекламы и маркетинга. технологии воздействия 12 шагов МакГрайра технологическая модель воздействия от узнавания продукта до согласия купит и до любви к нему Виды рекламы. Реклама в местах продажи вывески магазинов упаковка с фирменным логотипом Виды рекламы: 1.
32079. Структура, функции и тенденции развития современной семьи 41.5 KB
  Структура функции и тенденции развития современной семьи. Исходя из этого в изучении семьи можно отталкиваться от тех потребностей которые важны для супругов создавших семью и тех на которые рассчитывает в отношении семьи общество. Сфера жизнедеятельности семьи непосредственно связанная с удовлетворением определенных потребностей ее членов функция семьи. Навайтис: основные группы семейных потребностей: создание и поддержание материальных условий жизнедеятельности семьи; потребности в любви и опеке связанные с материнством; ...
32080. Социальная политическая психология 70.5 KB
  Социальная политическая психология Политическая Пс наука изучающая психологические компоненты политической жизни общества настроения мнения чувства ценности которые формируются и проявляются на уровне политического сознания наций классов соц групп правительств индивидов. Основные категории и принципы политической психологии Категории: 1 политическое сознание обозначает результат восприятия субъектом той части окружающей его действительности которая связана с политикой и в которую включен он сам а также его действия и...
32081. Тренинг как разновидность активной групповой психологической работы 53.5 KB
  Специфические черты тренингов: соблюдение ряда принципов групповой работы; нацеленность на психологическую помощь участникам группы в саморазвитии при этом такая помощь исходит не только а порой и не столько от ведущего сколько от самих участников; наличие более или менее постоянной группы обычно от 7 до 15 человек периодически собирающейся на встречи или работающей непрерывно в течение двухпяти дней так называемые группымарафоны; определенная пространственная организация; акцент па взаимоотношениях между участниками...
32082. Мотивация просоциального поведения и социальной самореализации (по Хекхаузену) 61 KB
  С незнакомым: чем сильнее ожидание успеха тем выше положительная привлекательность и наоборот все наоборот в мотиве достижения: чем выше вероятность успеха и следовательно легкость задания тем меньше привлекательность успеха и наоборот. Ответственность как устойчивая черта характера напрямую связана с такими личностными параметрами как интернальностьэкстернальность и мотивация достижения. Феномены власти чрезвычайно сложны основываются на повсеместно встречающейся ситуации социального конфликта возникающего изза несовместимости...
32083. Мотивация асоциального поведения 42 KB
  Понятие агрессии. Для понимания причин агрессии необходимо учитывать то каким путем агрессивная модель поведения была усвоена факторы которые спровоцировали ее проявление и условия способствующие закреплению данной модели поведения. Предполагается что агрессивные реакции могут быть усвоены путем наблюдения проявлений агрессии. фрустрации агрессии сформулирован Доллардом и др.
32084. Социальная психология административной и управленческой деятельности 96 KB
  Основная цель: разработка универсальных принципов управления пригодных ко всем типам организации. Было выявлено существование формальных и неформальных групп в организации и их влияние на поведение работников. потребности отказ от необходимости жесткой иерархии власти жесткие рамки не совместимы с природой человека; ответственность за решение проблем в организации лежит на менеджере; роль неформальных отношений. Главное квалификация уровень ее мотивации формы организации труда.