Matriks Transformasi
Grafika Komputer
TRANSFORMASI 2D
A. Matriks Transformasi dan Koordinat Homogen • Kombinasi bentuk perkalian dan translasi untuk transformasi geometri 2D ke dalam suatu matriks dilakukan dengan mengubah matriks 2 x 2 menjadi matriks 3 x 3. • Untuk itu maka koordinat cartesian (x,y) dinyatakan dalam bentuk koordinat homogen (xh, yh, h), dimana : x = xh / h
y = yh / h
• Dimana untuk geometri 2D parameter h ≠ 0 atau biasanya h = 1, sehingga setiap posisi koordinat 2D dapat dinyatakan dengan (x, y, 1). • Untuk transformasi 3D biasanya parameter h ≠ 1. • Dengan menyatakan posisi titik dalam koordinat homogen, semua transformasi geometri dinyatakan dalam bentuk matriks. • Koordinat dinyatakan dalam tiga elemen vektor kolom dan operasi transformasi ditulis dengan matriks 3 x 3.
Grafika Komputer
TRANSFORMASI 2D
A1. Matriks Translasi
x' 1 0 t x x y ' 0 1 t . y y 1 0 0 1 1
atau
P’ = T(tx, ty) . P
A2. Matriks Rotasi
x' cos y ' sin 1 0
sin cos 0
0 x 0 . y 1 1
atau
P’ = R(θ) . P
A3. Matriks Skala
x ' s x y' 0 1 0
0 sy 0
0 x 0 . y 1 1
atau
P’ = S(sx, sy) . P
Grafika Komputer
TRANSFORMASI 2D
B. Matriks Transformasi Komposit (Gabungan) • Dengan bentuk matriks seperti yang telah dibahas sebelumnya, setiap urutan transformasi dapat dibuat sebagai matriks transformasi komposit dengan menghitung produk matriks transformasi individu. • Bentuk matriks transformasi komposit diperoleh dengan melakukan perkalian matriks dari kanan ke kiri : B1. Translasi
• Bila dua vektor translasi masing-masing (tx1, ty1) dan (tx2, ty2) digunakan pada posisi koordinat P, maka transformasi akhir P’ dapat dihitung dengan: P’ = T(tx2, ty2) . { T(tx1, ty1) . P } { T(tx2, ty2) . T(tx1, ty1) } . P Dimana: P dan P’ : Vektor kolom koordinat homogen
Grafika Komputer
TRANSFORMASI 2D
Dalam bentuk matriks:
1 0 t x 2 1 0 t x1 1 0 t x1 t x 2 0 1 t . 0 1 t 0 1 t t y2 y1 y1 y2 0 0 1 0 0 1 0 0 1 atau T(tx2, ty2) . T(tx1, ty1) = T(tx1 + tx2, ty1 + ty2) B2. Scaling • Bila operasi penskalaan dilakukan sebanyak dua kali, maka akan menghasilkan matriks skala komposit sebagai berikut:
s x 2 0 0
0 sy2 0
0 s x1 0 0 s x1.s x 2 0 . 0 s y1 0 0 0 1 0 0 1
atau S(sx2, sy2) . S(sx1, sy1) = S(sx1 . sx2, sy1 . sy2)
0 s y1.s y 2 0
0 0 1
Grafika Komputer
TRANSFORMASI 2D
B3. Rotasi • Bila rotasi dilakukan sebanyak dua kali terhadap titik P, maka posisi transformasi akhir P’ dapat dinyatakan dengan: P’ = R(θ2) . { R(θ1) . P } { R(θ2) . R(θ1) } . P
dimana
R(θ2) . R(θ1) = R(θ1 + θ2)
Sehingga P’ = R(θ1 + θ2) . P B4. Rotasi Terhadap Pivot Point •
Pada paket aplikasi grafika yang hanya mampu memutar objek menurut koordinat asal, yaitu terhadap titik pusat koordinat, dapat dibuat rotasi yang dilakukan dari titik tertentu, pivot point (xp, yp) maka proses transformasi dilakukan dengan cara translasi-rotasi-translasi, prosedurnya adalah: 1. Pindahkan objek sedemikian sehingga posisi pivot point berada pada titik pusat (0, 0). 2. Putar objek pada titik pusat. 3. Pindahkan objek dari titik pusat ke posisi semula.
Grafika Komputer
TRANSFORMASI 2D
(xp, yp)
0
(a)
(b)
(xp, yp)
(c)
0 Ilustrasi rotasi terhadap pivot point
(d)
Grafika Komputer
TRANSFORMASI 2D
Dalam bentuk matriks transformasi komposit:
1 0 x r 0 1 y . r 0 0 1 cos sin 0
cos sin 0 1 0 x r sin cos 0 . 0 1 y r 0 0 1 0 0 1 sin x r (1 cos ) y r sin cos y r (1 cos ) x r sin 0 1
atau dapat dinyatakan T(xr, yr) . R(θ) . T(-xr, -yr) = R(xr, yr, θ)
Grafika Komputer
TRANSFORMASI 2D
B5. Scaling Terhadap Fixed Point •
Proses penskalaan (scaling) terhadap sebuat titik tertentu, fixed point (xf, yf) menggunakan fungsi skala adalah sebagai berikut: 1. Pindahkan objek sedemikian sehingga posisi fixed point berhimpit dengan titik pusat (0, 0). 2. Ubah skala objek pada titik pusat. 3. Pindahkan objek dari titik pusat ke posisi semula.
•
Bentuk matriksnya adalah:
1 0 x f s x 0 1 y . 0 f 0 0 1 0
0 sy 0
0 1 0 x f s x 0 . 0 1 y f 0 0 1 0 0 1
atau dapat ditulis: T(xf, yf) . S(sx, sy) . T(-xf, -yf) = S(xf, yf, sx, sy)
0 sy 0
x f (1 s x ) y f (1 s y ) 1
Grafika Komputer
TRANSFORMASI 2D
(xf, yf)
0
(a)
(b)
(xf, yf)
(c)
0 Ilustrasi scaling terhadap fixed point
(d)
Grafika Komputer
TRANSFORMASI 2D
7. Transformasi Lain
• Transformasi dasar seperti translasi, penskalaan dan rotasi merupakan fasilitas yang dimiliki setiap Aplikasi Grafika. Beberapa paket biasanya juga dilengkapi dengan beberapa tambahan transformasi yang berguna untuk aplikasi tertentu. A. Refleksi • Refleksi adalah transformasi yang menghasilkan pencerminan citra dari suatu objek. Citra hasil pencerminan untuk refleksi 2D dibuat relatif terhadap sumbu refleksi dengan cara memutar objek 180 terhadap sumbu refleksi. • Sumbu refleksi dapat dipilih sembarang garis pada bidang xy.
Grafika Komputer
TRANSFORMASI 2D
A1. Refleksi Terhadap Sumbu X • Refleksi terhadap sumbu x (horizontal), y=0 dinyatakan dengan matriks:
1 0 0 0 1 0 0 0 1 y
1
posisi asli 2
3
2’
3’
x posisi refleksi
1’ Ilustrasi refleksi terhadap sumbu x
Grafika Komputer
TRANSFORMASI 2D
A2. Refleksi Terhadap Sumbu y • Refleksi terhadap sumbu y (vertikal), x=0 dinyatakan dengan matriks:
1 0 0 0 1 0 0 0 1 y 1’
1
posisi refleksi
posisi asli
3’
2’
2
3
x Ilustrasi refleksi terhadap sumbu y
Grafika Komputer
TRANSFORMASI 2D
A3. Refleksi Terhadap Sumbu Tegak Lurus Bidang XY • Refleksi terhadap sumbu yang tegak lurus bidang xy dan melalui titik pusat dinyatakan dengan matriks:
1 0 0 0 1 0 0 0 1 y
1
posisi asli 2 2’
3’
3
x
posisi refleksi 1’
Ilustrasi refleksi terhadap sumbu tegak lurus bidang xy
Grafika Komputer
TRANSFORMASI 2D
A4. Refleksi Terhadap Garis Diagonal Y = X • Refleksi terhadap garis diagonal, y = x dinyatakan dengan matriks:
0 1 0 1 0 0 0 0 1 y
1
2
posisi asli
3
1’
3’
posisi refleksi 2’
x Ilustrasi refleksi terhadap garis diagonal y = x
• Terhadap sumbu x • X’ = X • Y’ = -Y
• Terhadap sumbu y • X’ = -X • Y’ = Y
• Terhadap sumbu y = x • X’ = Y • Y’ = X
• Terhadap sumbu y = -x • X’ = -Y • Y’ = -X