1.9. Перемещения и однородные координаты

В предыдущих разделах был рассмотрен ряд преобразований, совершаемых с помощью (2х2)-матрицы общего преобразования. Среди них поворот, отражение, масштабирование, сдвиг и другие. Ранее отмечалось, что исходная система координат инвариантна по отношению ко всем перечисленным преобразованиям. Однако возникает необходимость изменять положение начала координат, т. е. преобразовывать каждую точку на плоскости. Этого можно достичь путем перемещения точки начала координат или любой другой точки на плоскости

 

x* = ax + cy + m,
y* = bх + dy + n.

К сожалению, нельзя ввести константы перемещения m и n в (2х2)-матрицу преобразования, так как это не пространство!

Данное затруднение можно преодолеть, используя однородные координаты. Однородные координаты неоднородного координатного вектора [x y] представляют собой тройку [x' y' h], где x = x'/h, y = y'/h, а h - некоторое вещественное число. Заметим, что случай h = 0 является особым. Всегда существует один набор однородных координат вида [х у 1]. Мы выбрали эту форму, чтобы представить координатный вектор [х y] на физической плоскости хy. Все остальные однородные координаты представляются в виде [hx hy h]. Данные координаты не сохраняют однозначности, например, все следующие координаты [6 4 2], [12 8 4], [3 2 1] представляют физическую точку (3,2).

Матрица преобразования для однородных координат имеет размер 3х3. В частности,

 

   
[T] =    a  b  0 
 c  d  0 
 m  n  1 
   

где действие элементов а, b, с и d верхней части (2х2)-матрицы точно соответствует действиям, рассмотренным ранее. Элементы m и n являются коэффициентами перемещения в направлениях x и y соответственно. Полная двумерная матрица преобразования имеет вид

 

   
[x*  y*  1] = [x  y  1]   1  0  0 
 0  1  0 
 m  n  1 
 = [x+m  y+n  1]
   

Отметим, что каждая точка плоскости и даже начало координат x = y = 0 теперь могут быть преобразованы.

 

Назад
Компьютерная графика © 2014 ОСУ ИК Вход