Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питання 14-20 .doc
Скачиваний:
5
Добавлен:
11.09.2019
Размер:
735.23 Кб
Скачать

15. Геометричні перетворення. Паралельний перенос. Поворот. Маштабування.

Розглянемо перетворення координат точок на площині. На рис. 22 точка перенесена в точку .

Рис. 22. Операція переносу або трансляції точки в точку .

Математично цей перенос можна описати за допомогою вектора переносу . Нехай радіус вектор, який відповідає вектору переносу . Тоді перехід з точки в точку буде відповідно векторному запису . Звідси отримуємо, що для переносу точки в нове положення необхідно добавити до її координат деякі числа, які являють собою координати вектора переносу:

Масштабуванням об’єктів називається розтяг об’єктів вдовж відповідних осей координат відносно початку координат. Ця операція застосовується до кожної точки об’єкта, тому можна також говорити про масштабування точки. При цьому, мова не йде про зміну розмірів самої точки. Масштабування досягається множенням координат точок на деякі константи. В тому випадку, коли ці константи дорівнюють між собою, масштабування називається однорідним. На рис.23 наведений приклад однорідного масштабування трикутника .

Рис. 23. Операція масштабування.

Після застосування операції однорідного масштабування з коефіцієнтом 2 він переходить в трикутник . Позначимо матрицю масштабування . Для точок і операція масштабування в матричному вигляді буде виглядати наступним чином:

.

Розглянемо далі операцію обертання точки на деякий кут відносно початку координат. На рис. 24 точка переходить в точку поворотом на кут .

Рис. 24. Операція повороту точки на кут .

Знайдемо перетворення координат точки А в точку В. Позначимо кут, який складає радіус-вектор з віссю Оx. Нехай r – довжина радіус-вектора , тоді

Так як і , то підставляючи ці вирази в рівняння для і , отримаємо:

В матричному вигляді обертання точки А на кут виглядає наступним чином

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

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

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

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

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

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

Рис. 25. Проекція точки на площину .

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

В однорідних координатах перетворення центральної перспективи можна визначити матричною операцією. Ця матриця записується у вигляді:

Покажемо, що ця матриця визначає перетворення точки об’єкта, заданої в однорідних координатах, в точку перспективної проекції (також в однорідних координатах). Нехай – точка в тривимірному просторі. Її однорідне представлення . Помножимо v на P:

‑ це в точності повторює формули (1), виведені для центральної перспективи.

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

або , де .

При послідовному переносі точки в точку і потім в точку компоненти сумарного вектора переносу є сумами відповідних компонент послідовних векторів переносу. Розглянемо, якими будуть елементи матриці сумарного переносу. Нехай , . Підставивши перше рівняння в друге отримаємо . Матричний добуток, тобто сумарний перенос дорівнює добутку відповідних матриць переносу.

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

.

Визначимо матрицю масштабування

Так само, як послідовні переноси є адитивними, покажемо, що послідовні масштабування будуть мультиплікативними.

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

Визначимо матрицю повороту

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

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

Розглянемо, яким чином за допомогою композиції матричних перетворень можна отримати одне загальне результуюче перетворення. Для цього будемо використовувати матриці T, S і R. З точки зору обчислень значно простіше та швидше застосовувати матрицю вже готового перетворення замість того, щоб застосовувати їх послідовно одну за одною. До точки більш ефективно застосовувати одне результуюче перетворення, ніж ряд перетворень один за одним.

Для прикладу розглянемо задачу повороту об’єкта на площині відносно деякої довільної точки . Доки ми вміємо повертати об’єкти тільки навколо початку координат. Але можна уявити цю задачу як послідовність кроків, на кожному з яких будемо застосовуватися тільки елементарна операція: перенос, масштабування або обертання.

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

  1. Перенос, при якому точка переходить в початок координат.

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

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

Рис. 26. Послідовність перетворень при повороті об’єкта навколо точки на кут a.

Точка . Перший перенос проводиться на вектор , а обернений перенос ‑ на вектор .