¿Qué son las transformaciones afines?

Respuestas:

23

Una transformación afín es una transformación lineal + un vector de traducción.

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

Se puede aplicar a puntos individuales, a líneas o incluso a curvas de Bezier. Para las líneas, conserva la propiedad de que las líneas paralelas permanecen paralelas. Para las curvas de Bezier, conserva la propiedad de casco convexo de los puntos de control.

Multiplicado, produce 2 ecuaciones para producir un par de coordenadas "transformadas" (x,y) del par original (x,y) y una lista de constantes (a,b,c,d,e,f) .

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

Convenientemente, la transformación lineal y el vector de traducción se pueden juntar en una matriz 3D que puede operar sobre coordenadas 2D homogéneas.

[xy1]=[xy1][ab0cd0ef1]

Lo que produce las mismas 2 ecuaciones anteriores.

Muy convenientemente , las matrices mismas se pueden multiplicar juntas para producir una tercera matriz (de constantes) que realiza la misma transformación que las 2 originales en secuencia. En pocas palabras, las multiplicaciones de la matriz son asociativas.

[Xy1]=([Xy1][unasi0 0dore0 0miF1])[solh0 0yoj0 0kmetro1]=[unaX+doy+misiX+rey+F1][solh0 0yoj0 0kmetro1]=[sol(unaX+doy+mi)+yo(siX+rey+F)+kh(unaX+doy+mi)+j(siX+rey+F)+metro1]T=[Xy1]([unasi0 0dore0 0miF1][solh0 0yoj0 0kmetro1])=[Xy1][unasol+siyounah+sij0 0dosol+reyodoh+rej0 0misol+Fyo+kmih+Fj+metro1]

Alternativamente, puede considerar algunos tipos de transformación básicos y componer cualquier transformación más compleja combinando estos (multiplicándolos juntos).

Transformación de identidad

transformación de identidad

[10 00 00 010 00 00 01]

Escalada

escalada

[SX0 00 00 0Sy0 00 00 01]

* Nota: se puede realizar una reflexión con parámetros de escala o .(SX,Sy)=(-1,1)(1,-1)

Traducción

traducción

[10 00 00 010 0TXTy1]

Inclinar x por y

sesgar x por y

[1QX0 00 010 00 00 01]

Inclinar y por x

sesgar y por x

[10 00 0Qy10 00 00 01]

Rotación

rotación

[cosθ-syonorteθ0 0pecadoθcosθ0 00 00 01]

[Tenga en cuenta que he mostrado la forma de Matrix aquí que acepta un vector de fila a la izquierda . La transposición de estas matrices funcionará con un vector de columna a la derecha.]

Una matriz compuesta exclusivamente de escala, rotación y traslación puede descomponerse nuevamente en estos tres componentes .

luser droog
fuente
55
Gran respuesta. Es posible que desee agregar que una forma de pensar acerca de las transformaciones afines es que mantienen líneas paralelas paralelas. Por lo tanto, la escala, la rotación, la traslación, la cizalla y las combinaciones cuentan como afines. La proyección en perspectiva es un ejemplo de una transformación no afín.
ap_
2
Podrías agregar algunas fotos. Si no lo haré: P También podría ser bueno mencionar el orden en la matriz y la orientación de fila / columna es arbitraria. Y que las rotaciones en 3d no son conmutativas.
joojaa
2
@joojaa hice fotos! fuentes postscript
luser droog
1
También vale la pena mencionar que las transformaciones de cuerpo rígido son un subconjunto de transformaciones afines, y las transformaciones afines son un subconjunto de transformaciones de perspectiva.
user1118321
Sigo releyendo esto de vez en cuando y no puedo decirlo, pero podría tener las transformaciones asimétricas descritas erróneamente. Los sesgos son confusos. Si alguien ve esto y quiere probar la edición, ¡ayúdenos a aclarar esa parte!
Luser Droog