Що таке аффінні трансформації?


21

Що таке аффінні транформації? Чи застосовуються вони лише до точок або до інших фігур? Що означає, що їх можна «скласти»?

Відповіді:


23

Аффінна трансформація - це лінійна трансформація + вектор перекладу.

[xy]=[xy][abcd]+[ef]

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

Помножившись, він створює 2 рівняння для отримання "перетвореної" пари координат з вихідної пари ( x , y ) та списку констант ( a , b , c ,(x,y)(x,y) . x = a x + c y + e(a,b,c,d,e,f)

x=ax+cy+ey=bx+dy+f

Зручно, лінійне перетворення та вектор перекладу можуть бути об'єднані в 3D-матрицю, яка може працювати над 2D однорідними координатами.

[xy1]=[xy1][ab0cd0ef1]

Що дає ті самі 2 рівняння вище.

Дуже зручно , самі матриці можна множити разом, щоб отримати третю матрицю (константи), яка виконує те саме перетворення, що і початкові 2 виконували б у послідовності. Простіше кажучи, матричне множення є асоціативним.

[xy1]=([xy1][ab0cd0ef1])[gh0ij0km1]=[ax+cy+ebx+dy+f1][gh0ij0km1]=[g(ax+cy+e)+i(bx+dy+f)+kh(ax+cy+e)+j(bx+dy+f)+m1]T=[xy1]([ab0cd0ef1][gh0ij0km1])=[xy1][ag+biah+bj0cg+dich+dj0eg+fi+keh+fj+m1]

Крім того, ви можете розглянути кілька основних типів перетворень і скласти будь-яке більш складне перетворення, комбінуючи їх (множивши їх разом).

Трансформація ідентичності

трансформація ідентичності

[100010001]

Масштабування

масштабування

[Sx000Sy0001]

(Sx,Sy)=(1,1)(1,1)

Переклад

переклад

[100010TxTy1]

Перекиньте x на у

косий х по у

[1Qx0010001]

Косимо y по х

косий y по х

[100Qy10001]

Обертання

обертання

[cosθsinθ0sinθcosθ0001]

[Примітка. Тут я показав форму Матриці, яка приймає вектор рядка зліва . Транспонування цих матриць буде працювати з вектором стовпця праворуч.]

Матриця, складена виключно з масштабування, обертання та перекладу, може бути розкладена назад на ці три компоненти .


5
Чудова відповідь. Ви можете додати, що один із способів думати про аффінні перетворення - це те, щоб вони тривали паралельні лінії паралельними. Отже, масштабування, обертання, переклад, зсув та комбінації вважаються афінними. Перспективна проекція є прикладом нефінного перетворення.
1_15

2
Ви можете додати кілька фотографій. Якщо ви не хочете: P Також може бути добре згадати порядок у матриці та орієнтацію рядків / стовпців довільно. І що обертання в 3d не є комутаційними.
joojaa

2
@joojaa Я зробив фотографії! Джерела
післяскрипту

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

Я постійно перечитую це раз у раз, і я не можу повністю сказати, але, можливо, перетворення перекосів описано неправильно. Skews заплутані. Якщо хтось бачить це і хоче зайнятися редагуванням, будь ласка, допоможіть уточнити цю частину!
luser droog
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.