BAB-7 TRANSFORMASI 2D Kita dapat melakukan transformasi terhadap objek, pada materi ini akan dibahas transformasi 2D yaitu translasi, skala, rotasi. By: I Gusti Ngurah Suryantara, S.Kom., M.Kom 7.1. PENDAHULUAN Transformasi merupakan suatu metode untuk mengubah lokasi suatu titik pembentuk objek, sehingga objek tersebut mengalami perubahan. Perubahan objek dengan mengubah koordinat dan ukuran suatu objek disebut dengan transformasi geometri. Pada materi kali ini kita akan membahas transformasi dasar, matriks transformasi, transformasi lain. 7.2. TRANSFORMASI DASAR Dalam transformasi dasar pada 2D yang akan kita bahas adalah: translasi, skala, dan rotasi. 7.2.1. Translasi Translasi berarti memindahkan objek sepanjang garis lurus dari suatu lokasi koordinat tertentu kelokasi yang lain tanpa mengubah bentuk objek. Bila suatu objek terbentuk dari beberapa titik maka bila melakukan translasi akan dikenakan terhadap setiap titik pembentuk objek tersebut. Untuk melakukan translasi dapat menggunakan rumus: x = x + t x y = y + t y atau dapat juga dilakukan dengan transofrmasi affine yang menggunakan matrik identitas yaitu: M = 1 0 0 1 Menjadi: (Q x, Q y ) = (P x + tr x, P y + tr y ) Setiap titik akan digeser sejauh tr x dalam sumbu x dan tr y dalam sumbu y. Contoh: Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan transformasi vector (10,20) lakukan trnslasi terhadap objek segitiga tersebut: 89
Titik A x A = x A + t x y A = y A + t y = 10 + 10 = 10 + 20 = 20 = 30 A (20,30) Titik B x B = x B + t x y B = y B + t y = 30 + 10 = 10 + 10 = 40 = 20 B (40,20) Titik C x C = x C + t x y C = y C + t y = 10 + 10 = 30 + 20 = 20 = 50 C (20,50) Gambar 7.1. Translasi sebuah segitiga dari suatu posis ke posisi yang lain 7.2.2.Skala Skala digunakan untuk mengubah ukuran suatu objek, bila pada translasi operasi yang digunakan adalah penjumlahan sedangkan pada skala operasi yang digunakan adalah perkalian. Untuk melakukan skala dapat menggunakan rumus: x = x * t x y = y * t y 90
s x dan s y merupakan nilai dari scaling factor terhadap sumbu x dan sumbu y. Bila menggunakan transformasi affin matriknya adalah: S x 0 M = 0 S y Menjadi: (Q x, Q y ) = (P x * S x, P y * S y ) Contoh: Diketahui objek segitiga dengan titik A(10,10), B(30,10), C(10,30) di skala dengan scaling factor (3,2). Titik A x A = x A * t x y A = y A * t y = 10 * 3 = 10 * 2 = 30 = 20 A (30,20) Titik B x B = x B * t x y B = y B * t y = 30 * 3 = 10 * 2 = 90 = 20 B (90,20) Titik C x C = x C * t x y C = y C * t y = 10 * 3 = 30 * 2 = 30 = 60 C (30,60) Gambar Asal Gambar Hasil...? Gambar 7.2. Skala pada objek segitiga 91
7.2.3.Rotasi Rotasi merupakan pemutaran terhadap suatu objek, rotasi dapat dinyatakan dalam bentuk matriks. Nilai matriks untuk melakukan rotasi adalah: R = Cosө Sinө -Sinө Cosө Rotasi suatu titik terhadap pivot point (x p, y p ) menggunakan bentuk trigonometri, secara umum dapat ditulis sebagi berikut: = p + ( p) Cosө - (- p) Sinө = p + ( p) Sinө + ( p) Cosө Contoh: Diketahui titik-titik pembentuk objek segitiga yaiu A(10,10), B(30,10), C(10,30) dengan sudut rotasi 30 0 terhadap titik pusat koordinat cartesian (10,10). Jawab Titik A A = p + ( A p )Cos 30 0 ( A - P )Sin 30 0 = 10 + (10-10) * 0.9 (10-10) * 0.5 = 10 A = P + ( A P )Sin 30 0 + ( A P )Cos 30 0 = 10 + (10 10) * 0.5 + (10 10) * 0.9 = 10 A (10,10) Titik B B = p + ( A p )Cos 30 0 ( A - P )Sin 30 0 = 10 + (30-10) * 0.9 (10-10) * 0.5 = 28 B = P + ( A P )Sin 30 0 + ( A P )Cos 30 0 = 10 + (30 10) * 0.5 + (10 10) * 0.9 = 20 B (28,20) Titik C C = p + ( A p )Cos 30 0 ( A - P )Sin 30 0 = 10 + (10-10) * 0.9 (30-10) * 0.5 = 0 C = P + ( A P )Sin 30 0 + ( A P )Cos 30 0 = 10 + (10 10) * 0.5 + (30 10) * 0.9 = 28 C (0,28) 92
Gambar Asal Gambar Hasil...? Gambar 7.3. Rotasi objek segitiga dengan sudut rotasi 30 0 7.3. MATRIK TRANSFORMASI Dalam matrik transformasi ini kita akan membahas jenis transformasi homogenius dan komposit transformasi. 7.3.1. Transformasi Homogenius Transforamsi juga dapat dilakukan dengan menggunakan matrik transformasi yang menggabungkan translasi, skala dan rotasi kedalam satu model matrik yang disebut dengan transformasi homogenius. Keuntungan yang didapat dari transformasi homogenius adalah kita tidak perlu membuat prosedur yang khusus terhadap jenis transforamsi akan tetapi cukup dengan malakukan perkalian matrik. Matrik transformasi homogenius seperti berikut: Translasi: 1 0 Tr x M = 0 1 Tr y Skala: S x 0 0 M = 0 S y 0 Rotasi: Cosө -Sinө 0 M = Sinө Cosө 0 Transformasi dilakukan dengan cara: [ 1] = [ 1] * M 93
7.3.2. Komposit Transformasi Matrik Setiap sekuen dari transformasi dapat dibuat sebagai composite transformastion matrix dengan menghitung produk matrik transformasi masing-masing. Kolom menggambarkan posisi koordinat, composite transformation diperoleh dengan melakukan perkalian matrik dari kanan ke kiri. Translasi Bila dua transformasi vektor (t x1, t y1 ) dan (t x2, t y2 ) digunakan pada koordinat posisi P, maka lokasi trasformasi akhir P dapat diditung: P = T( t x2, t y2 ). T( t x1, t y1 ). P = T (t x2, t y2 ). T( t x1, t y1 ). P Dimana P dan P merupakan koordinat homogen vektor kolom, maka perhitungan perkalian kedua matrik dapat diperoleh. Composit transformation matrix untuk translasi adalah: 1 0 t x1 1 0 t x2 1 0 t x1 + t x2 0 1 t y1. 0 1 t y2 = 0 1 t y1 + t y2 Atau T(t x2, t y2 ). T(t x1, t y1 ) = T(t x1 + t x2, t y1 + t y2 ) Skala Bila dua faktor skala (S x1, S y1 ) dan (S x2, S y2 ) digunakan pada suatu objek, maka composite transformation matrix menjadi: S x1 0 0 S x1 0 0 S x1.s x2 0 0 0 S y2 0. 0 S y1 0 = 0 S y1.s y2 0 Atau S(S x2, S y2 ). S(S x1, S y1 ) = T(S x1 + S x2, S y1 + S y2 ) 94
Rotasi Bila rotasi terhadap titik P dilakukan dua kali dengan sudut ө 1 dan ө 2, maka koordinat titik P dapat diperoleh dengan: P = R(ө 2 ). R(ө 1 ). P = R(ө 2 ). R(ө 1 ).P Dengan melakukan kedua perkalian matrik rotasi, maka diperoleh bentuk tambahan: R(ө 2 ). R(ө 1 ) = R(ө 1 + ө 2 ) Sehingga koordinat rotasi terakhir diperoleh dengan: P = R(ө1+ ө2). P Skala Menurut Arah Tertentu Parameter S x dan S y digunakan untuk skala menurut arah sumbu x dan y. Skala dapat dilakukan menurut sumbu yang diputar yaitu S 1 dan S 2 seperti pada Gambar 4.4 dapat dilakukan dengan matrik. S 1 Cos 2 ө + S 2 Sin 2 ө (S 2 S 1 )Cosө Sinө 0 (S 2 S 1 )Cosө Sinө S 1 Sin 2 ө + S 2 Cos 2 ө 0 Contoh: Sebuah objek segiempat dengan titik A(0,0), B(2,0), C(2,2) dan D(0,2) diskala dengan parameter ө = 45 0, S 1 =1 dan S 2 =2. S 1 Cos 2 ө + S 2 Sin 2 ө (S 2 S 1 )Cosө Sinө 0 = (S 2 S 1 )Cosө Sinө S 1 Sin 2 ө + S 2 Cos 2 ө 0. 1 1 1. ½ + 2. ½ (2-1). ½ 0 = (2-1). ½ 1. ½ +2. ½ 0. 1 1½ ½ 0 = ½ 1½ 0. 1 = 1,5 * + ½ * = ½ * + 1,5 * 95
Titik A A = 1,5 * 0 + 0,5 * 0 = 0 A = 0,5 * 0 + 1,5 * 0 = 0 A (0,0) Titik B B = 1,5 * 0 + 0,5 * 0 = 3 B = 0,5 * 2 + 1,5 * 0 = 1 B (3,1) Titik C C = 1,5 * 2 + 0,5 * 2 = 4 C = 0,5 * 2 + 1,5 * 2 = 4 C (4,4) Titik D D = 1,5 * 0 + 0,5 * 2 = 1 D = 0,5 * 0 + 1,5 * 2 = 3 D (1,3) Gambar 7.4. Objek segiempat yang dikenaka sekala menurut arah tertentu 96
7.4. TRANSFORMASI LAIN Selain transforamsi dasar yang sudah kita bahas, bentuk tansformasi lain adalah refleksi (pencerminan) dan Shear. 7.4.1. Refleksi Refleks adalah transformasi yang membuat mirror dari suatu objek. Sumbu refleksi dapat dipilih pada bidang xy. Refleksi terhadap garis y=0, yaitu sumbu x dapat dinyatakan dengan matrik. 1 0 0 0-1 0 Gambar 7.5 memperlihatkan refleksi terhadap sumbu x. C Objek asli A B 0 A B Setelah direfleksi C Gambar 7.5 Refleksi terhadap sumbu x Refleksi terhadap sumbu y membalikkan koordinat dengan nilai y tetap. Matrik transformasi dapat dinyatakan dengan: -1 0 0 0 1 0 Gambar 7.6 menunjukkan suatu objek yang direfleksi terhadap sumbu y atau garis x=0. Setelah direfleksi C C Objek asli B A A B 0 Gambar 7.6 Refleksi terhadap sumbu y 97
Refleksi terhadap sumbu x dan y sekaligus dilakukan dengan pertama-tama direfleksi terhadap sumbu x. Hasilnya kemudian direfleksi terhadap sumbu y, hal ini sama dengan memutar objek 180 0. Transformasi ini dapat dinyatakan dalam bentuk matrik: -1 0 0 0-1 0 0 B A Objek setelah direfleksi C C A Objek asli B Gambar 7.7 Refleksi terhadap axis x dan y Refleksi suatu objek terhadap garis y = x seperti pada Gambar 7.8 dapat dilakukan dalam bentuk matriks sebagai berikut: 0 1 0 1 0 0 B = Objek setelah direfleksi A C 0 C A Objek asli B Gambar 7.8 Refleksiterhadap garis y = x 98
Refleksi suatu objek terhadap garis y = -x seperti pada gambar 4.9 dapat dinyatakan dalam bentuk matriks sebagai berikut: 0-1 0-1 0 0 = - C A Objek asli B B A Objek setelah direfleksi C 0 Gambar 7.9 Refleksiterhadap garis y = x 7.4.2. Shear Shear merupakan bentuk transformasi yang membuat distorsi dari bentuk suatu objek. Seperti menggeser sisi tertentu. Dua shear yang umum adalah shear menurut sumbu x, dan shear terhadap sumbu y. Matriks transformasi shear terhadap sumbu x: Dengan koordinat transformasi = + sh x., = 1 sh x 0 0 1 0 D(0,1) C(1,1) D (2,1) C (3,1 ) A(0,0) B(1,0) A (0,0) B (1,0) Gambar 7.10 Shear terhadap sumbu x dengan nilai sh x =2 99
Paramter shx dapat dinyatakan dengan sembarang nilai, posisi koordinat digeser menurut arah horisontal. Pada Gambar 7.10 nilai shx adalah 2. Shear juga dapat dilakukan menurut garis tertentu yang sejajar dengan sumbu x dengan bentuk matrik: 1 sh x -sh x. y ref 0 1 0 Dengan posisi koordinat transformasi = x + sh x (y y ref ), = Gambar 8.11 merupakan contoh shear dengan paramter shear shx = ½ dan y ref = -1. D(0,1) C(1,1) D (1,1) C (2,1) A(0,0) B(1,0) A (½,0) B (3/2,0) ref = -1 ref = -1 Gambar 7.11 Shear dengan shx = ½ dan yref = -1 Shear suatu objek yang dilakukan terhadap sumbu y menggunakan matrik trasnformasi: 1 0 0 Sh y 1 0 Dengan koordinat transformasi =, = sh y. + Parameter sh y dapat dinyatakan dengan sembarang bilangan. Posisi koordinat kemudian digeser menurut arah vertikal. Contoh pada Gambar 7.12 menunjukkan shear dengan memberikan nilai sh y dengan 2. 100
C (1,3) D(0,1) C(1,1) D (0,1) B (1,2) A(0,0) B(1,0) A (0,0) Gambar 7.12 Shear menurut arah sumbu y Shear juga dapat dilakukan terhadap garis tertentu yang sejajar dengan sumbu y dengan bentuk martrik sebagai berikut: 1 0 0 Sh y 1 -sh y. x ref Dengan posisi koordinat transformasi =, = sh y ( ref ) + Gambar 8.13 memperlihatkan shear dengan paramter shear ½ terhadap garis ref = -1 C (1,2) D (0,3/2) D(0,1) C(1,1) B (1,1) A (0, ½) ref = -1 0 A(0,0) B(1,0) ref = -1 0 Gambar 7.13 Shear mnurut garis x=-1 101
7.6. LATIHAN 1. Diketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) lakukan tranaslasi terhadap obje tersebut, bila nilai translation factor (20,45). 2. Deiketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) dilakukan skala dengan scaling factor (2,3). 3. Diketahui objek segiempat dengan titik A(10,10), B(10,20), C(20,20) dan D(20,10) dirotasi dengan sudut rotasi 45 0 terhadap titik pusat koordinat cartesian (10,10). 7.7. MATERI PRAKTIKUM 1. Butalah program untuk melakukan transformasi dasar (translasi, skala, rotasi) pada suatu objek. 2. Buatlah program untuk pencerminan. 3. Buatlah program untuk shear. 102