Co to są transformacje afiniczne?

21

Co to są transformacje afiniczne? Czy dotyczą one tylko punktów, czy też innych kształtów? Co to znaczy, że można je „skomponować”?

luser droog
źródło

Odpowiedzi:

23

Przekształcenie afiniczne jest przekształceniem liniowym + wektorem translacji.

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

Można go zastosować do pojedynczych punktów lub linii, a nawet krzywych Beziera. W przypadku linii zachowuje właściwość, że linie równoległe pozostają równoległe. W przypadku krzywych Beziera zachowuje właściwości wypukłego kadłuba punktów kontrolnych.

Po pomnożeniu tworzy 2 równania do otrzymania „transformowanej” pary współrzędnych z oryginalnej pary ( x , y ) i listy stałych ( a , b , c , d , e , f ) . x = a x + c y + e(x,y)(x,y)(a,b,c,d,e,f)

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

Dogodnie transformację liniową i wektor translacji można połączyć w matrycę 3D, która może działać na współrzędnych homogenicznych 2D.

[xy1]=[xy1][ab0cd0ef1]

Co daje te same 2 równania powyżej.

Bardzo dogodnie same macierze mogą być mnożone razem, aby uzyskać trzecią macierz (stałych), która wykonuje taką samą transformację, jak oryginalna 2 wykonałaby po kolei. Mówiąc prościej, mnożenia macierzy są asocjacyjne.

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

Alternatywnie możesz rozważyć kilka podstawowych typów transformacji i skomponować dowolną bardziej złożoną transformację, łącząc je (mnożąc je razem).

Przekształcenie tożsamości

transformacja tożsamości

[100010001]

skalowanie

skalowanie

[Sx000Sy0001]

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

Tłumaczenie

tłumaczenie

[100010TxTy1]

Pochyl x o y

pochylić x o y

[1Qx0010001]

Pochyl y o x

pochyl y o x

[100Qy10001]

Obrót

obrót

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

[Uwaga: Pokazałem tutaj Matrycę, która akceptuje wektor wiersza po lewej stronie . Transpozycja tych macierzy będzie działać z wektorem kolumny po prawej stronie.]

Macierz złożona wyłącznie ze skalowania, obrotu i translacji można ponownie rozłożyć na te trzy elementy .

luser droog
źródło
5
Świetna odpowiedź. Możesz dodać, że jednym ze sposobów myślenia o transformatach afinicznych jest to, że utrzymują równoległe linie równoległe. Stąd skalowanie, obrót, translacja, ścinanie i kombinacje liczą się jako afiniczne. Rzut perspektywiczny jest przykładem transformacji bez afinii.
ap_
2
Możesz dodać kilka zdjęć. Jeśli tego nie zrobisz: P Warto również wspomnieć o kolejności w macierzy, a orientacja wierszy / kolumn jest dowolna. I że obroty w 3D nie są przemienne.
joojaa
2
@joojaa Zrobiłem zdjęcia! źródła postscriptowe
luser droog
1
Warto również wspomnieć, że przekształcenia sztywnego ciała są podzbiorem przekształceń afinicznych, a przekształcenia afiniczne są podzbiorem przekształceń perspektywicznych.
user1118321
Od czasu do czasu czytam to ponownie i nie mogę do końca powiedzieć, ale być może źle opisałem transformacje skośne. Krzywy są mylące. Jeśli ktoś to widzi i chce spróbować edycji, pomóż wyjaśnić tę część!
luser droog