Apa itu Transformasi Affine?

21

Apa itu Affine Tranformations? Apakah mereka berlaku hanya untuk titik atau bentuk lain juga? Apa artinya mereka bisa "dikomposisi"?

luser droog
sumber

Jawaban:

23

Transformasi Affine adalah Transformasi Linier + Vektor Terjemahan.

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

Ini dapat diterapkan pada poin individu atau garis atau bahkan kurva Bezier. Untuk garis, ini mempertahankan properti yang garis paralelnya tetap paralel. Untuk kurva Bezier, ini mempertahankan properti cembung dari titik kontrol.

Digandakan, menghasilkan 2 persamaan untuk menghasilkan pasangan koordinat "yang diubah" (x,y) dari pasangan asli dan daftar konstanta . ( a , b , c , d , e , f ) x = a x + c y + e(x,y)(a,b,c,d,e,f)

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

Secara mudah, transformasi Linear dan vektor Terjemahan dapat disatukan menjadi matriks 3D yang dapat beroperasi melalui koordinat homogen 2D.

[xy1]=[xy1][ab0cd0ef1]

Yang menghasilkan 2 persamaan yang sama di atas.

Sangat mudah , matriks itu sendiri dapat dikalikan bersama untuk menghasilkan matriks ketiga (konstanta) yang melakukan transformasi yang sama seperti yang asli 2 akan lakukan secara berurutan. Sederhananya, perkalian matriks adalah asosiatif.

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

Atau Anda dapat mempertimbangkan beberapa tipe transformasi dasar dan menyusun transformasi yang lebih kompleks dengan menggabungkan ini (mengalikannya bersama-sama).

Transformasi identitas

transformasi identitas

[100010001]

Scaling

scaling

[Sx000Sy0001]

* Catatan: refleksi dapat dilakukan dengan parameter penskalaan atau .(Sx,Sy)=(1,1)(1,1)

Terjemahan

terjemahan

[100010TxTy1]

Miring x demi y

condong x oleh y

[1Qx0010001]

Miring y oleh x

condong y oleh x

[100Qy10001]

Rotasi

rotasi

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

[Catatan saya telah menunjukkan bentuk Matrix di sini yang menerima vektor baris di sebelah kiri . Transpos matriks ini akan bekerja dengan vektor kolom di sebelah kanan.]

Matriks yang tersusun murni dari penskalaan, rotasi, dan terjemahan dapat diuraikan kembali menjadi tiga komponen ini .

luser droog
sumber
5
Jawaban yang bagus Anda mungkin ingin menambahkan bahwa satu cara untuk berpikir tentang transformasi affine adalah bahwa mereka menjaga garis paralel sejajar. Karenanya, penskalaan, rotasi, terjemahan, geser dan kombinasi, dihitung sebagai affine. Proyeksi perspektif adalah contoh transformasi non-affine.
ap_
2
Anda dapat menambahkan beberapa gambar. Jika Anda tidak ingin, saya akan: P Juga mungkin baik untuk menyebutkan urutan dalam matriks dan orientasi baris / kolom adalah arbitrer. Dan rotasi di 3d tidak komutatif.
joojaa
2
@ joojaa saya membuat foto! sumber tambahan
luser droog
1
Mungkin juga layak untuk disebutkan bahwa transformasi tubuh yang kaku adalah bagian dari transformasi afin, dan transformasi afin adalah bagian dari transformasi perspektif.
user1118321
Saya terus membaca ini sekali-sekali dan saya tidak bisa mengatakannya, tetapi saya mungkin memiliki transformasi miring yang salah. Skew membingungkan. Jika ada yang melihat ini dan ingin mengedit, tolong bantu klarifikasi bagian itu!
luser droog