Преобразование единичного квадрата

Четыре вектора положения точек единичного квадрата с одним углом в начале координат записываются в виде

Преобразование единичного квадрата - student2.ru

Применение общего матричного преобразования Преобразование единичного квадрата - student2.ru к единичному квадрату приводит к следующему:

Преобразование единичного квадрата - student2.ru .

Преобразование единичного квадрата - student2.ru

Рис. 6.1. Преобразования единичного квадрата

Из полученного соотношения можно сделать вывод, что координаты В* определяются первой строкой матрицы преобразования, а координаты D* второй строкой этой матрицы. Таким образом, если координаты точек В* и D* известны, то общая матрица преобразования определена. Воспользуемся этим свойством для нахождения матрицы преобразования для вращения на произвольный угол.

Общую матрицу 2´2, которая осуществляет вращение фигуры относительно начала координат, можно получить из рассмотрения вращения единичного квадрата вокруг начала координат.

Преобразование единичного квадрата - student2.ru

Рис. 6.2. Вращение единичного квадрата

Как следует из рис. 6.2, точка В с координатами (1,0) преобразуется в точку В*, для которой х*=(1)cos q и y=(1)sin q, а точка D, имеющая координаты (0,1) переходит в точку D* с координатами x*=(-1)sin q и y*=(1)cos q.

Матрица преобразования общего вида записывается так:

Преобразование единичного квадрата - student2.ru .

Для частных случаев. Поворот на 90° можно осуществить с помощью матрицы преобразования

Преобразование единичного квадрата - student2.ru .

Если использовать матрицу координат вершин, то получим, например:

Преобразование единичного квадрата - student2.ru .

Поворот на 180° получается с помощью матрицы Преобразование единичного квадрата - student2.ru .

Отображение

В то время как чистое двумерное вращение в плоскости xy осуществляется вокруг оси, перпендикулярной к этой плоскости, отображение определяется поворотом на 180° вокруг оси, лежащей в плоскости ху.

Такое вращение вокруг линии у = х происходит при использовании матрицы Преобразование единичного квадрата - student2.ru .

Преобразованные новые выражения определяются соотношением

Преобразование единичного квадрата - student2.ru .

Вращение вокруг у = 0 получается при использовании матрицы

Преобразование единичного квадрата - student2.ru .

Однородные координаты

Преобразования переноса, масштабирования и поворота записываются в матричной форме в виде

Преобразование единичного квадрата - student2.ru ,

Преобразование единичного квадрата - student2.ru ,

Преобразование единичного квадрата - student2.ru .

Очевидно, что перенос, в отличие от масштабирования и поворота, реализуется с помощью сложения. Это обусловлено тем, что вводить константы переноса внутрь структуры общей матрицы размером 2´2 не представляется возможным. Желательным является представление преобразований в единой форме – с помощью умножения матриц. Эту проблему можно решить за счет введения третьей компоненты в векторы точек Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru , т. е. представляя их в виде Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru . Матрица преобразования после этого становится матрицей размером 3´2:

Преобразование единичного квадрата - student2.ru .

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

Преобразование единичного квадрата - student2.ru ,

откуда следует, что константы т, п вызывают смещение х* и y* относительно х и у. Поскольку матрица 3´2 не является квадрат­ной, она не имеет обратной матрицы. Эту трудность можно обойти, дополнив матрицу преобразования до квадратной размером 3´3. Например,

Преобразование единичного квадрата - student2.ru .

Заметим, что третья компонента векторов положения точек не изменяется при добавлении третьего столбца к матрице преобра­зования. Используя эту матрицу в соотношении, полу­чаем преобразованный вектор [х* у* 1]. Добавление третьего элемента к вектору положения и третьего столбца к матрице преобразования позволяет выполнить смещение вектора поло­жения. Третий элемент здесь можно рассматривать как дополни­тельную координату вектора положения. Итак, вектор положе­ния [х у 1] при воздействии на него матрицы 3´3 становится вектором положения в общем случае вида [X Y Н]. Представ­ленное преобразование было выполнено так, что [X Y Н] = [х* у* 1].

Преобразование, имеющее место в трехмерном пространстве, в нашем случае ограничено плоскостью, поскольку H = 1. Если, однако, третий столбец Преобразование единичного квадрата - student2.ru матрицы преобразования Т размера 3 х 3 отличен от 0, то в результате матричного преобразования получим [х у 1] =[Х Y Н], где Н ¹ 1.

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

Итак, найденные х* и у* получены с помощью пучка лучей, проходящих через на­чало координат. Результат пре­образований показан на рис. 6.3.

Рис. 6.3. Геометрическое представление однородных координат

Из рассмотрения подобных треугольников видно, что Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru . Рассмат­ривая три компоненты, запи­шем это в виде

Преобразование единичного квадрата - student2.ru .

Представление двумерного вектора трехмерным или в общем случае n-мерного вектора (п + 1)-мерным называют однородным координатным воспроизведением. При однородном координат­ном воспроизведении n-мерного вектора оно выполняется в (п + 1)-мерном пространстве, и конечные результаты в n-мерном пространстве получают с помощью обратного преобразова­ния. Таким образом, двумерный вектор [х у] представляется трехкомпонентным вектором Преобразование единичного квадрата - student2.ru . Разделив компоненты вектора на однородную координату h, получим

Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru .

Не существует единственного однородного координатного пред­ставления точки в двумерном пространстве. Например, однород­ные координаты (12, 8, 4), (6, 4, 2) и (3, 2, 1) представляют исход­ную точку [3 2]. Для простоты вычислений выбираем [х у 1], чтобы представить непреобразованную точку в двумерных одно­родных координатах. Преобразование

Преобразование единичного квадрата - student2.ru

в дополнительных координатах задается выражением в однород­ных координатах в виде

Преобразование единичного квадрата - student2.ru .

Выполнение указанных выше преобразований показывает, что Х = х*, Y = у*, а Н = 1. Равенство единице дополнительной координаты означает, что преобразованные однородные коор­динаты равны исходным координатам.

В общем случае Н ¹ 1, и преобразованные обычные коорди­наты получаются за счет нормализации однородных координат, т. е.

Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru .

Геометрически все преобразования х и у происходят в пло­скости Н = 1 после нормализации преобразованных однород­ных координат.

Преимущество введения однородных координат проявляется при использовании матрицы преобразований общего вида по­рядка 3´3

Преобразование единичного квадрата - student2.ru ,

с помощью которой можно выполнять и другие преобразования, такие как смещение, операции изменения масштаба и сдвига, обусловленные матричными элементами а, b, с и d. Указанные операции рассмотрены ранее.

Чтобы показать воздействие третьего столбца матрицы преоб­разований 3´3, рассмотрим следующую операцию:

Преобразование единичного квадрата - student2.ru ;

здесь Х = х, Y = у, а Н = рх + qy + 1. Переменная Н, ко­торая определяет плоскость, содержащую преобразованные точки, представленные в однородных координатах, теперь обра­зует уравнение плоскости в трехмерном пространстве.

Это преоб­разование показано на рис. 6.4, где линияАВ, лежащая в пло­скости ху, спроектирована на линиюCD плоскости рХ + qY —Н + 1 = 0.

Рис. 6.4. Преобразование отрезка в однородных координатах

На рисунке величина р = q = 1.Выполним нормализацию для того, чтобы получить обыч­ные координаты:

Преобразование единичного квадрата - student2.ru ,

Преобразование единичного квадрата - student2.ru

Полагая р = q = 1, для изображенных на рисунке точек А и В с координатами соответственно (1, 3) и (4, 1) получим

Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru .

После преобразования А в С* иВ в D* имеем

Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru .

Однородные координаты для точек С* и D*, показанные на рисунке, соответственно равны Преобразование единичного квадрата - student2.ru и Преобразование единичного квадрата - student2.ru .

Результатом нормализации является перевод трехмерной линии CD в ее проекцию C*D* на плоскость Н = 1. Как показано на рисунке, центром проекции является начало координат.

Основная матрица преобразования размером 3´3 для дву­мерных однородных координат может быть подразделена на че­тыре части:

Преобразование единичного квадрата - student2.ru .

Как мы видим, а, b, с и d осуществляют изменение масштаба, сдвиг и вращение; т и п выполняют смещение, а р и q — полу­чение проекций. Оставшаяся часть матрицы, элемент s, произ­водит полное изменение масштаба. Чтобы показать это, рассмо­трим преобразование

Преобразование единичного квадрата - student2.ru

Здесь Х = х, Y = у, а Н = s. Это дает х* = x/s и y* == y/s. В результате преобразования [х у 1 ] —> [x/s y/s 1] имеет место однородное изменение масштаба вектора положения. При s< 1 происходит увеличение, а при s >1 — уменьшение масштаба.

Наши рекомендации