Que sont les transformations affines?

21

Que sont les transformations affines? S'appliquent-ils uniquement aux points ou à d'autres formes? Qu'est-ce que cela signifie qu'ils peuvent être "composés"?

luser droog
la source

Réponses:

23

Une transformation affine est une transformation linéaire + un vecteur de traduction.

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

Il peut être appliqué à des points individuels ou à des lignes ou même des courbes de Bézier. Pour les lignes, il conserve la propriété que les lignes parallèles restent parallèles. Pour les courbes de Bézier, il conserve la propriété coque convexe des points de contrôle.

Multipliée, elle produit 2 équations pour produire une paire de coordonnées "transformée" partir de la paire d'origine et une liste de constantes . (x,y)(x,y)(a,b,c,d,e,f)

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

De manière pratique, la transformation linéaire et le vecteur de translation peuvent être regroupés dans une matrice 3D qui peut fonctionner sur des coordonnées homogènes 2D.

[xy1]=[xy1][ab0cd0ef1]

Ce qui donne les 2 mêmes équations ci-dessus.

Très commodément , les matrices elles-mêmes peuvent être multipliées ensemble pour produire une troisième matrice (de constantes) qui effectue la même transformation que l'original 2 effectuerait en séquence. En termes simples, les multiplications matricielles sont associatives.

[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]

Alternativement, vous pouvez considérer quelques types de transformation de base et composer toute transformation plus complexe en les combinant (en les multipliant ensemble).

Transformation d'identité

transformation de l'identité

[100010001]

Mise à l'échelle

mise à l'échelle

[Sx000Sy0001]

* Remarque: une réflexion peut être effectuée avec des paramètres de mise à l'échelle ou .(Sx,Sy)=(1,1)(1,1)

Traduction

Traduction

[100010TxTy1]

Incliner x par y

biais x par y

[1Qx0010001]

Incliner y par x

fausser y par x

[100Qy10001]

Rotation

rotation

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

[Notez que j'ai montré ici la forme de la matrice qui accepte un vecteur ligne sur la gauche . La transposition de ces matrices fonctionnera avec un vecteur colonne à droite.]

Une matrice composée uniquement de mise à l'échelle, de rotation et de translation peut être à nouveau décomposée en ces trois composants .

luser droog
la source
5
Très bonne réponse. Vous voudrez peut-être ajouter qu'une façon de penser aux transformations affines est qu'elles gardent les lignes parallèles parallèles. Par conséquent, la mise à l'échelle, la rotation, la translation, le cisaillement et les combinaisons comptent comme affines. La projection en perspective est un exemple de transformation non affine.
ap_
2
Vous pouvez ajouter quelques photos. Si vous ne le feriez pas, je pourrais: P Il serait peut-être bon de mentionner l'ordre dans l'orientation de la matrice et des lignes / colonnes est arbitraire. Et que les rotations en 3D ne sont pas comutatives.
joojaa
2
@joojaa J'ai fait des photos! sources postscript
luser droog
1
Il convient également de mentionner que les transformations de corps rigides sont un sous-ensemble de transformations affines et que les transformations affines sont un sous-ensemble de transformations en perspective.
user1118321
Je continue de relire cela de temps en temps et je ne peux pas vraiment le dire, mais je pourrais avoir une mauvaise description des transformations de biais. Les biais sont déroutants. Si quelqu'un voit cela et souhaite essayer l'édition, veuillez clarifier cette partie!
luser droog