Grafik Komputer dan Pengolahan Citra Grafik Komputer : Transformasi Geometri 2 Dimensi Universitas Gunadarma 2006 Grafik Komputer : Transformasi Geometri 2D 1/11 Grafik Komputer dan Pengolahan Citra Matriks dan Transformasi Geometri • Representasi umum suatu Matriks adalah : ⎡ M11 M12 ⎢ M21 M22 M=⎢ ⎢ M M ⎢ ⎣Mm1 Mm2 dimana pada Matriks Mrc, r adalah kolom dan c baris. • Suatu Vektor direpresentasikan sebagai matriks kolom L M1n ⎤ L M2n ⎥⎥ O M ⎥ ⎥ L Mmn ⎦ ⎡ v1 ⎤ : v = ⎢⎢ v 2⎥⎥ ⎢⎣ v 3 ⎥⎦ • Perkalian Matriks dan Vektor dapat digunakan untuk transformasi linier suatu vektor. M M ⎤⎡v ⎤ ⎡M 11 M • v = ⎢⎢ M 21 ⎢⎣ M 31 12 M 22 M 32 x ⎡a ⎤ ⎥ ⎢ ⎥ M 23 ⎥ ⎢ v y ⎥ = ⎢⎢ b ⎥⎥ M 33 ⎥⎦ ⎢⎣ v z ⎥⎦ ⎢⎣ c ⎥⎦ 13 • Suatu sekuens transformasi linier berkorespondensi dengan matriks korespondennya : M M M v = v 1 2 3 old new dimana, Vektor hasil di sisi kanan dipengaruhi matriks transformasi linier dan vektor awal. • Jadi….. Suatu Transformasi Linier : – Memetakan suatu vektor ke vektor lain – Menyimpan suatu kombinasi linier Grafik Komputer : Transformasi Geometri 2D 2/11 Grafik Komputer dan Pengolahan Citra TRANSLASI • Translasi adalah suatu pergerakan/perpindahan semua titik dari objek pada suatu jalur lurus sehingga menempati posisi baru. • Jalur yang direpresentasikan oleh vektor disebut Translasi atau Vektor Geser. • Pergeseran tersebut dapat ditulis : ⎢ • Untuk merepresentasikan translasi dalam matriks 3x3 kita dapat menulisnya : ⎡1 0 Tx ⎤ ⎡ x ⎤ ⎡ x + Tx ⎤ ⎡1 0 Tx ⎤ ⎢ ⎥⎢ ⎥ ⎢ ⎢ ⎥ ⎥ Translation = ⎢0 1 Ty ⎥ T 0 1 y ⎥ ⎢ y ⎥ = ⎢ y + Ty ⎥ ⎢ ⎢0 0 1 ⎥ ⎢0 0 1 ⎥ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ ⎣ ⎦ ⎣ ⎦ ⎡a b ⎤ ⎡ x ⎤ ⎡ x'⎤ ⎥ ⎢ y ⎥ = ⎢ y '⎥ c d ⎣ ⎦⎣ ⎦ ⎣ ⎦ Tx = 2 Ty = 1 Grafik Komputer : Transformasi Geometri 2D 3/11 Grafik Komputer dan Pengolahan Citra ROTASI • Rotasi adalah mereposisi semua titik dari objek sepanjang jalur lingkaran dengan pusatnya pada titik pivot. x’ = x cos(θ) - y sin(θ) y’ = x sin(θ) + y cos(θ) (x’, y’) (x, y) θ φ x = r cos (Φ) y = r sin (Φ) x’ = r cos (Φ + θ) y’ = r sin (Φ + θ) Identitas Geometri… x’ = r cos(Φ) cos(θ) – r sin(Φ) sin(θ) y’ = r sin(Φ) sin(θ) + r cos(Φ) cos(θ) Substitusi… x’ = x cos(θ) - y sin(θ) y’ = x sin(θ) + y cos(θ) • Untuk memudahkan perhitungan dapat digunakan matriks: ⎡ x'⎤ ⎡cos(θ ) − sin (θ )⎤ ⎡ x ⎤ ⎢ y '⎥ = ⎢ sin (θ ) cos(θ ) ⎥ ⎢ y ⎥ ⎦⎣ ⎦ ⎣ ⎦ ⎣ Dimana : - sin(θ) dan cos(θ) adalah fungsi linier dari θ, - x’ kombinasi linier dari x dan y – y’ kombinasi linier dari x and y Grafik Komputer : Transformasi Geometri 2D 4/11 Grafik Komputer dan Pengolahan Citra SKALA • • Penskalaan koordinat dimaksudkan untuk menggandakan setiap komponen yang ada pada objek secara skalar. Keseragaman penskalaan berarti skalar yang digunakan sama untuk semua komponen objek. ×2 • Ketidakseragaman penskalaan berarti skalar yang digunakan pada objek adalah tidak sama. X × 2, Y × 0.5 • Operasi Skala : ⎡ x'⎤ ⎡ax ⎤ ⎢ y '⎥ = ⎢by ⎥ ⎣ ⎦ ⎣ ⎦ atau dalam bentuk matriks :⎡ x'⎤ = ⎡a ⎢ y '⎥ ⎣ ⎦ 0⎤ ⎡ x ⎤ ⎢0 b⎥ ⎢ y ⎥ ⎣ ⎦⎣ ⎦ Grafik Komputer : Transformasi Geometri 2D 5/11 Grafik Komputer dan Pengolahan Citra CONTOH • Translasi : Y 6 ⎡4⎤ ⎢4⎥ ⎣ ⎦ 5 4 dx = 2 dy = 3 3 2 ⎡2⎤ ⎢1 ⎥ ⎣ ⎦ 1 0 Y • Skala : sx = 3 sy = 2 1 2 3 4 5 6 7 8 9 10 X 6 5 4 3 2 ⎡2⎤ ⎢1 ⎥ ⎣ ⎦ 1 ⎡6 ⎤ ⎢2⎥ ⎣ ⎦ ⎡3⎤ ⎢1 ⎥ ⎣ ⎦ ⎡9 ⎤ ⎢2⎥ ⎣ ⎦ 0 1 • Rotasi : Y 2 3 4 5 6 7 8 9 7 8 9 10 X 6 θ= 5 π 6 4 3 2 θ 1 0 1 2 3 4 5 6 Grafik Komputer : Transformasi Geometri 2D 10 X 6/11 Grafik Komputer dan Pengolahan Citra Koordinat Homogen • Koordinat Homogen adalah representasi koordinat 2 dimensi dengan 3 vektor. ⎡ x⎤ x ⎡ ⎤ homogeneous coords ⎢ ⎥ ⎢ y ⎥ ⎯⎯ ⎯ ⎯ ⎯⎯→ ⎢ y ⎥ ⎣ ⎦ ⎢⎣ 1 ⎥⎦ R otation ⎡ cos( θ ) = ⎢⎢ sin( θ ) ⎢⎣ 0 − sin( θ ) cos( θ ) 0 0⎤ 0 ⎥⎥ 1 ⎥⎦ ⎡ a 0 0⎤ Scale = ⎢⎢ 0 b 0⎥⎥ ⎢⎣ 0 0 1⎥⎦ ⎡1 0 Tx ⎤ ⎢ ⎥ Translation = ⎢0 1 Ty ⎥ ⎢0 0 1 ⎥ ⎣ ⎦ Grafik Komputer : Transformasi Geometri 2D 7/11 Grafik Komputer dan Pengolahan Citra Transformasi Gabungan (1/3) • Kita dapat merepresentasikan 3 transformasi dalam sebuah matriks tunggal. – – – • Tranformasi Gabungan : – – – • Operasi yang dilakukan adalah perkalian matriks Tidak ada penanganan khusus ketika mentransformasikan suatu titik : matriks • vector Transformasi gabungan : matriks • matriks Rotasi sebagai titik perubahan : translasi – rotasitranslai Skala sebgai titik perubahan : translasi – skalatranslasi Perubahan sistem koordinat : translasi – rotasi – skala Langkah yang dilakukan : 1. Urutkan matriks secara benar sesuai dengan transformasi yang akan dilakukan. 2. Kalikan matriks secara bersamaan 3. Simpan matriks hasil perkalian tersebut (2) 4. Kalikan matriks dengan vektor dari verteks 5. Hasilnya, semua verteks akan ter-transformasi dengan satu perkalian matriks. Grafik Komputer : Transformasi Geometri 2D 8/11 Grafik Komputer dan Pengolahan Citra Transformasi Gabungan (2/3) • Perkalian Matriks bersifat Asosiatif : ⎛ ⎡a b ⎤ ⎡ e ⎜⎢ ⎜ c d ⎥ • ⎢g ⎦ ⎣ ⎝⎣ f ⎤⎞ ⎡i ⎟• h ⎥⎦ ⎟⎠ ⎢⎣k j ⎤ ⎡ae + bg = l ⎥⎦ ⎢⎣ ce + dg af + bh⎤ ⎡ i • cf + dh ⎥⎦ ⎢⎣k ⎡aei + bgi + afk + bhk =⎢ ⎣ cei + dgi + cfk + dhk ⎡a b ⎤ ⎛ ⎡ e ⎢ c d ⎥ • ⎜⎜ ⎢ g ⎣ ⎦ ⎝⎣ f ⎤ ⎡i • h ⎥⎦ ⎢⎣k j ⎤ ⎞ ⎡a b ⎤ ⎡ ei + fk ⎟= • l ⎥⎦ ⎟⎠ ⎢⎣ c d ⎥⎦ ⎢⎣ gi + hk aej + bgj + afl + bhl ⎤ cej + dgj + cfl + dhl ⎥⎦ ej + fl ⎤ gj + hl ⎥⎦ ⎡aei + afk + bgi + bhk =⎢ ⎣ cei + cfk + dgi + dhk • j⎤ l ⎥⎦ aej + afl + bgj + bhl ⎤ cej + cfl + dgj + dhl ⎥⎦ Perkalian Matriks tidak bersifat Komutatif ⎡a b ⎤ ⎡ e ⎢c d ⎥ • ⎢ g ⎣ ⎦ ⎣ ⎡e ⎢g ⎣ f ⎤ ⎡ae + bg = h ⎥⎦ ⎢⎣ ce + dg f ⎤ ⎡a b ⎤ ⎡ ea + fc • = h ⎥⎦ ⎢⎣ c d ⎥⎦ ⎢⎣ ga + hc af + bh ⎤ cf + dh ⎥⎦ eb + fd ⎤ gb + hd ⎥⎦ Grafik Komputer : Transformasi Geometri 2D 9/11 Grafik Komputer dan Pengolahan Citra Transformasi Gabungan (3/3) Contoh : • Jika terdapat objek yang tidak terletak di titik pusat, maka bila akan dilakukan pen-skala-an dan rotasi,kita perlu mentranslasikan objek tersebut sebelumnya ke titik pusat baru kemudian dilakukan pen-skala-an atau rotasi, dan terakhir dikembalikan lagi ke posisi semula. House ( H ) • T ( dx , dy ) H R (θ )T ( dx , dy ) H T ( − dx , − dy ) R (θ )T ( dx , dy ) H Rotasikan sebuah segment garis sebesar 45o dengan endpoint pada titik a ! – Posisi awal a a – a – Rotasi 45o – Translasi ke titik pusat a a Translasi ke titik semula ⎡1 0 − 3⎤ ⎡cos(45) − sin(45) 0⎤ ⎡1 0 3⎤ ⎡ a x ⎤ ⎡ a ' x ⎤ ⎢0 1 0 ⎥ ⎢ sin(45) cos(45) 0⎥ ⎢0 1 0⎥ ⎢a ⎥ = ⎢a ' ⎥ ⎥⎢ ⎥⎢ y ⎥ ⎢ y ⎥ ⎢ ⎥⎢ ⎢⎣0 0 1 ⎥⎦ ⎢⎣ 0 0 1⎥⎦ ⎢⎣0 0 1⎥⎦ ⎢⎣ 1 ⎥⎦ ⎢⎣ 1 ⎥⎦ Grafik Komputer : Transformasi Geometri 2D 10/11 Grafik Komputer dan Pengolahan Citra Transformasi Lainnya • Refleksi ⎡−1 0 0⎤ ⎢ 0 −1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦ ⎡1 0 0⎤ ⎢0 −1 0⎥ ⎢ ⎥ ⎢⎣0 0 1⎥⎦ ⎡0 1 0⎤ ⎢1 0 0⎥ ⎥ ⎢ ⎣⎢0 0 1⎥⎦ ⎡−1 0 0⎤ ⎢ 0 1 0⎥ ⎥ ⎢ ⎢⎣ 0 0 1⎥⎦ • Shear Arah x ⎡1 shx 0⎤ ⎢0 1 0⎥ ⎥ ⎢ ⎢⎣0 0 1⎥⎦ Arah y ⎡ 1 ⎢ sh ⎢ y ⎢⎣ 0 0 0⎤ 1 0 ⎥⎥ 0 1 ⎥⎦ Grafik Komputer : Transformasi Geometri 2D 11/11