Двумерные преобразования относительно координат.


1. Сдвиг.

y

 
 


Сдвиг точки по OY обозначается Dy,

P’(x’,y’) по OX обозначается Dx,

       
 
   
 


Dy x’ = x + Dx,

P(x,y) y’ = y + Dy,

 
 


Важен знак коэффициента D.

x


Dx

[x’, y’] = [x, y] + [Dx, Dy]

P’ = P + T

Теоретически для любого изображения нужно выполнить такие действия над каждой точкой изображения. Если имеем дело с векторным изображением, то для отрезка (А, В) достаточно выполнить перенос концов отрезка (А’, В’). Данное утверждение справедливо для действий масштабирования и поворота. Три действия сдвиг, масштаб и поворот позволяют получить абсолютно любое пространственное преобразование объекта.

2. Масштабирование.

y

       
 
   
 

 

 


P’(x’, y’)

P(x,y)

 

x

При масштабировании координаты точки умножаются на коэффициент масштабирования.

 
 


x’ = x * Sx

y’ = y * Sy

 

Запишем в матричной форме коэффициент масштабирования S.

Тогда

P’ = P * S

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

Для простоты промасштабируем по обоим осям.

Пример. Пусть начало отрезка проходит через начало координат.

1) y

Промасштабируем его по обеим осям с коэффициентом 2.

P2(1,1) Sx = Sy = 2.

P3(0.5;0.5)

x

P1(0,0)

Тогда получится

y

 

P2‘(2, 2)

 

 

P1‘(0,0)

 
 


2) Возьмём P3(0.5;0.5). Выполним масштаб по обеим осям с тем же коэффициентом. Зрительно отрезок как бы сместился вправо. При масштабировании это происходит всегда.

y

P2(2,2)

 

 

P3(1,1)

 


x

 


3. Поворот. Если известен угол поворота a, то

y

P2‘(x’,y’) x’ = x cos a – y sin a

y’ = x sin a + y cos a

 

 

a P(x,y)

 
 

 


x

В матричной форме

Или P’ = P * R, где R – это матрица поворота. При движении против часовой стрелки угол поворота считается положительным, при движении по часовой стрелке угол поворота отрицательный. Недостатки в преобразованиях: сдвиг выполняется через сложение, а масштаб и поворот через умножение. При достаточно сложном объекте это неудобно. Чтобы уйти от сложения в сдвиге объекта, из математики позаимствовали понятие однородных координат.

P(Wx,Wy,W)

То есть, для точки в двухмерном пространстве появляется фиктивная третья координата:

Тогда сдвиг выполняется в матричной форме через умножение P’ = P * T. Таким же образом третья координата добавляется в действие масштабирования и поворота.

Для масштабирования:

 

 

 

Для поворота:

P’ = P * T * S *R – даёт наименьшее количество операций умножения.

 



Дата добавления: 2016-07-27; просмотров: 1528;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.016 сек.