Однородные координаты и матричное представление двумерных преобразований

В предыдущем параграфе были рассмотрены три вида преобразований точек на плоскости. Два из них – операции вращения и масштабирования - описываются в виде произведения матрицы на вектор, а третья – операция переноса – описывается как сумма двух векторов. В случае последовательного выполнения любой комбинации операций вращения и масштабирования результат легко можно записать в виде произведения матриц соответствующих преобразований. Это будет матрица результирующего поворота и масштабирования. Очевидно, что удобнее применять результирующую матрицу вместо того, чтобы каждый раз заново вычислять произведение матриц. Однако, таким способом нельзя получить результирующую матрицу преобразования, если среди последовательности преобразований присутствует хотя бы один перенос. Матричное произведение в компьютерной графике также называют композицией. Было бы удобнее иметь математический аппарат, позволяющий включать в композиции преобразований все три выше указанные операции. При этом получился бы значительный выигрыш в скорости вычислений. Введение однородных координат позволяет решить эту проблему*.

Так, двумерный вектор Однородные координаты и матричное представление двумерных преобразований - student2.ru в однородных координатах записывается в виде Однородные координаты и матричное представление двумерных преобразований - student2.ru , где Однородные координаты и матричное представление двумерных преобразований - student2.ru . Число Однородные координаты и матричное представление двумерных преобразований - student2.ru называется масштабным множителем. Для того, чтобы из вектора, записанного в однородных координатах получить вектор в обычных координатах необходимо разделить первые две координаты на третью: Однородные координаты и матричное представление двумерных преобразований - student2.ru .

В общем случае осуществляется переход от n-мерного пространства к
Однородные координаты и матричное представление двумерных преобразований - student2.ru -мерному. Это преобразование не единственное. Обратное преобразование называется проекцией однородных координат.

Однородные координаты и матричное представление двумерных преобразований - student2.ru Рассмотрим некоторые свойства однородных координат. Некоторые точки, неопределенные в n-мерном пространстве, становятся вполне определенными при переходе к однородным координатам. Например, однородный вектор Однородные координаты и матричное представление двумерных преобразований - student2.ru в трехмерном пространстве соответствует бесконечно удаленной точке Однородные координаты и матричное представление двумерных преобразований - student2.ru . Поскольку в однородных координатах эту точку можно представить в виде Однородные координаты и матричное представление двумерных преобразований - student2.ru , при Однородные координаты и матричное представление двумерных преобразований - student2.ru , то в трехмерном пространстве это соответствует точке Однородные координаты и матричное представление двумерных преобразований - student2.ru .

Рассмотрим точку трехмерного пространства Однородные координаты и матричное представление двумерных преобразований - student2.ru . Если представить эту точку как однородное представление точки двумерного пространства, то ее координаты будут Однородные координаты и матричное представление двумерных преобразований - student2.ru . Сравнивая эти координаты со вторым видом формул, выведенных для центральной перспективной проекции, легко заметить, что двумерное представление точки с координатами Однородные координаты и матричное представление двумерных преобразований - student2.ru выглядит как ее проекция на плоскость Однородные координаты и матричное представление двумерных преобразований - student2.ru , как показано на рис. 26.

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

В однородных координатах преобразование центральной перспективы можно определить матричной операцией. Эта матрица записывается в виде:

Однородные координаты и матричное представление двумерных преобразований - student2.ru

Покажем, что эта матрица определяет преобразование точки объекта, заданной в однородных координатах, в точку перспективной проекции (также в однородных координатах). Пусть Однородные координаты и матричное представление двумерных преобразований - student2.ru – точка в трехмерном пространстве. Ее однородное представление Однородные координаты и матричное представление двумерных преобразований - student2.ru . Умножим v на P:

Однородные координаты и матричное представление двумерных преобразований - student2.ru

‑ это в точности повторяет формулы (1), выведенные для центральной перспективы.

Теперь точки двумерного пространства будут описываться трехэлементными вектор-строками, поэтому и матрицы преобразований, на которые будет умножаться вектор точки, будут иметь размеры 3´3. Запишем матричное преобразование операции переноса для однородных координат:

Однородные координаты и матричное представление двумерных преобразований - student2.ru

или Однородные координаты и матричное представление двумерных преобразований - student2.ru , где Однородные координаты и матричное представление двумерных преобразований - student2.ru .

При последовательном переносе точки Однородные координаты и матричное представление двумерных преобразований - student2.ru в точку Однородные координаты и матричное представление двумерных преобразований - student2.ru и затем в точку Однородные координаты и матричное представление двумерных преобразований - student2.ru компоненты суммарного вектора переноса являются суммами соответствующих компонент последовательных векторов переноса. Рассмотрим, каковы будут элементы матрицы суммарного переноса. Пусть Однородные координаты и матричное представление двумерных преобразований - student2.ru , Однородные координаты и матричное представление двумерных преобразований - student2.ru . Подставив первое уравнение во второе получаем Однородные координаты и матричное представление двумерных преобразований - student2.ru . Матричное произведение т.е. суммарный перенос равен произведению соответствующих матриц переноса.

Однородные координаты и матричное представление двумерных преобразований - student2.ru

Запишем матричный вид операции масштабирования.

Однородные координаты и матричное представление двумерных преобразований - student2.ru .

Определим матрицу масштабирования Однородные координаты и матричное представление двумерных преобразований - student2.ru

Так же, как последовательные переносы являются аддитивными, покажем, что последовательные масштабирования будут мультипликативными.

Однородные координаты и матричное представление двумерных преобразований - student2.ru Однородные координаты и матричное представление двумерных преобразований - student2.ru

Для операции поворота матричный вид будет такой:

Однородные координаты и матричное представление двумерных преобразований - student2.ru

Определим матрицу поворота Однородные координаты и матричное представление двумерных преобразований - student2.ru

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

Однородные координаты и матричное представление двумерных преобразований - student2.ru

Однородные координаты и матричное представление двумерных преобразований - student2.ru

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

Рассмотрим, каким образом с помощью композиции матричных преобразований можно получить одно общее результирующее преобразование. Для этого будем использовать матрицы T, S и R. С вычислительной точки зрения гораздо проще и быстрее применять матрицу уже готового преобразования вместо того, чтобы применять их последовательно одну за другой. К точке более эффективно применять одно результирующее преобразование, чем ряд преобразований друг за другом.

Для примера рассмотрим задачу поворота объекта на плоскости относительно некоторой произвольной точки Однородные координаты и матричное представление двумерных преобразований - student2.ru . Пока мы умеем поворачивать объекты только вокруг начала координат. Но можно представить эту задачу как последовательность шагов, на каждом из которых будет применяться только элементарная операция: перенос, масштабирование или вращение.

Вот эта последовательность элементарных преобразований (рис. 27):

  1. Перенос, при котором точка Однородные координаты и матричное представление двумерных преобразований - student2.ru переходит в начало координат.
  2. Поворот на заданный угол.
  3.  
      Однородные координаты и матричное представление двумерных преобразований - student2.ru

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

Точка Однородные координаты и матричное представление двумерных преобразований - student2.ru Однородные координаты и матричное представление двумерных преобразований - student2.ru . Первый перенос производится на вектор Однородные координаты и матричное представление двумерных преобразований - student2.ru , а обратный перенос ‑ на вектор Однородные координаты и матричное представление двумерных преобразований - student2.ru .

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