Однорідні координати та матричне представлення двовимірних перетворень

В попередньому параграфі були розглянуті три види перетворень точок на площині. Два з них – операції обертання та масштабування - описуються в у вигляді добутку матриці на вектор, а третя – операція переносу – описується як сума двох векторів. У випадку послідовного виконання довільної комбінації операцій обертання та масштабування результат легко можна записати у вигляді добутку матриць відповідних перетворень. Це буде матриця результуючого повороту та масштабування. Очевидно, що зручніше застосовувати результуючу матрицю замість того, щоб кожний раз заново вираховувати добуток матриць. Але, таким способом неможна отримати результуючу матрицю перетворення, якщо серед послідовності перетворень присутній хоча би один перенос. Матричний добуток в комп’ютерній графіці також називають композицією. Було би зручніше мати математичний апарат, який дозволяє включати в композиції перетворень усі три вище вказані операції. При цьому отримали би значний виграш в швидкості обчислень. Однорідні координати і є цим математичним апаратом.

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

В загальному випадку відбувається перехід від n-мірного простору до Однорідні координати та матричне представлення двовимірних перетворень - student2.ru -мірного. Це перетворення не єдине. Обернене перетворення називається проекцією однорідних координат*.

Розглянемо деякі властивості однорідних координат. Деякі точки, невизначені в n-мірному просторі, стають визначеними при переході до однорідних координат. Наприклад, однорідний вектор Однорідні координати та матричне представлення двовимірних перетворень - student2.ru в тривимірному просторі відповідає нескінченно віддаленої точки Однорідні координати та матричне представлення двовимірних перетворень - student2.ru . Оскільки в однорідних координатах цю точку можна представити у вигляді Однорідні координати та матричне представлення двовимірних перетворень - student2.ru , при Однорідні координати та матричне представлення двовимірних перетворень - student2.ru , то в тривимірному просторі це відповідає точці Однорідні координати та матричне представлення двовимірних перетворень - student2.ru .

Розглянемо точку тривимірного простору Однорідні координати та матричне представлення двовимірних перетворень - student2.ru . Якщо уявити цю точку як однорідне представлення точки двовимірного простору, то її координати будуть Однорідні координати та матричне представлення двовимірних перетворень - student2.ru . Порівнюючи ці координати із другим видом формул, виведених для центральної перспективної проекції, легко замітити, що двовимірне представлення точки з координатами Однорідні координати та матричне представлення двовимірних перетворень - student2.ru виглядає як її проекція на площину Однорідні координати та матричне представлення двовимірних перетворень - student2.ru , як показано на рис. 25.

Однорідні координати та матричне представлення двовимірних перетворень - student2.ru

Рис. 25. Проекція точки Однорідні координати та матричне представлення двовимірних перетворень - student2.ru на площину Однорідні координати та матричне представлення двовимірних перетворень - student2.ru .

Аналогічно, розглядаючи застосування однорідних координат для векторів тривимірного простору, можна представити тривимірний простір як проекцію чотиривимірного простору на гиперплощину Однорідні координати та матричне представлення двовимірних перетворень - 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 . Доки ми вміємо повертати об’єкти тільки навколо початку координат. Але можна уявити цю задачу як послідовність кроків, на кожному з яких будемо застосовуватися тільки елементарна операція: перенос, масштабування або обертання.

От ця послідовність елементарних перетворень (рис. 26):

1. Перенос, при якому точка Однорідні координати та матричне представлення двовимірних перетворень - student2.ru переходить в початок координат.

2. Поворот на заданий кут.

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

Однорідні координати та матричне представлення двовимірних перетворень - student2.ru

Рис. 26. Послідовність перетворень при повороті об’єкта навколо точки Однорідні координати та матричне представлення двовимірних перетворень - student2.ru Однорідні координати та матричне представлення двовимірних перетворень - student2.ru на кут a.

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

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