BAB V TRANSFORMASI 2D OBJEKTIF : Pada Bab ini mahasiswa mempelajari tentang : Transformasi Dasar 2D 1. Translasi 2. Rotasi 3. Scalling Transformasi Lain 1. Refleksi 2. Shear TUJUAN DAN SASARAN: Setelah mempelajari bab ini mahasiswa diharapkan: 1. Memahami transformasi dasar 2D : translasi, rotasi dan scalling 2. Memahami transformasi lain : Refleksi dan Shear 3. Mengimplementasikan transformasi 2D menggunakan Java WAKTU dan TEMPAT 1. 4 (empat) kali pertemuan 2. 8 5 menit pertemuan di kelas 3. 16 5 menit latihan di rumah IF-UTAMA V-1
5.1 Pengenalan Transformasi Dasar 2D Setelah suatu objek grafis dibangun, kita dapat melakukan transformasi terhadap objek grafis tersebut dengan berbagai cara tanpa menambahkan komponen baru apapun pada objek grafis tersebut. Ada banak cara untuk melakukan transformasi objek grafis, tapi beberapa cara transformasi ang umum adalah : 1. Translasi : objek dipindahkan ke lokasi baru tanpa mengubah bentuk, ukuran atau orientasina. 2. Rotasi : objek dirotasi (diputar) terhadap titik tertentu tanpa mengubah bentuk dan ukuranna 3. Scalling : objek diperbesar atau diperkecil. objek dapat diskalakan menggunakan faktor ang sama baik secara horisontal maupun vertikal sehingga proporsina tetap atau bisa menggunakan faktor ang berbeda ang akan menebabkan objek tersebut menjadi lebih lebih tinggi, lebih pendek, lebih tipis atau lebih tebal. Translasi dan rotasi disebut juga sebagai rigid bod transformation aitu transformasi ang hana mengubah posisi objek, tanpa mengubah bentukna 5.2 Translasi Translasi adalah transformasi paling sederhana ang dapat diterapkan pada suatu objek grafis. Secara sederhana translasi adalah memindahkan objek grafis dari satu tempat ke tempat lain tanpa mengubah tampilan dan orientasi. Untuk menghasilkan translasi dari suatu objek grafis, kita menambahkan konstanta T pada koordinat dan konstanta T pada koordinat Y, formula ini diterapkan pada semua titik pada objek ang akan ditranslasikan. (, ) t (,) t berikut : Formula untuk mentranslasikan suatu titik (,) ke posisi baru ( i, i ) adalah sebagai IF-UTAMA V-2
Translasi Titik i = + T i = + T Pada praktekna untuk mentranslasikan objek grafis, tentu saja kita tidak harus menghitung semua titik pada objek tersebut, tetapi cukup titik-titik pentingna saja. Contoh untuk memindahkan garis, cukup dihitung titik awal dan akhir saja kemudian gambarkan garis dari kedua titik tersebut. Contoh kedua untuk memindahkan lingkaran cukup menghitung titik pusat lingkaran kemudian dengan menggunakan algoritma penggambaran lingkaran, lingkaran dengan posisi baru bisa dibentuk. B B i A A i IF-UTAMA V-3
Perhitungan translasi bias juga dengan menggunakan matriks transformasi sebagai berikut : Matriks Translasi i X = i + Y T T Contoh soal 1 : Sebuah garis dengan koordinat A(1,1) dan B(15,3) ditranslasikan dengan translation vector (1,2). Jawab : Titik A : Xa i = Xa + T = 1+1 = 2 Ya i = Ya + T = 1+2 = 3 Hasil translasi titik A = (2,3) Titik B : Xb i = Xb + T = 15+1 = 25 Yb i = Yb + T = 3+2 = 5 Hasil translasi titik B = (25,5) Sehingga garis baru ang terbentuk adalah garis dengan koordinat titik Ai(2,3) dan Bi(25,5) Perhitungan translasi ini juga bias menggunakan matriks sebagai berikut : 1 1 2 Untuk titik A + 1 = 2 3 15 1 25 Untuk titik B + 3 = 2 5 5 B i 4 3 2 B A i 1 A 1 2 3 4 5 IF-UTAMA V-4
5.3 Rotasi Rotasi suatu image adalah memutar objek terhadap titik tertentu di bidang. Bentuk dan ukuran objek tidak berubah. Untuk melakukan rotasi perlu diketahui sudut rotasi θ dan pivot point (Xp,Yp) atau titik rotasi dimana objek dirotasi. NIlai positif dari sudut rotasi menentukan arah rotasi berlawanan dengan jarum jam dan sebalikna nilai negative akan memutar objek searah jarum jam A i θ A Rotasi ang paling sederhana adalah rotasi dengan pivot point di titik pusat koordinat sistem aitu (,). Pada gambar 5. terlihat titik (,) dirotasi terhadap titik pusat koordinat sistem dengan sudut θ, sudut terhadap sumbu adalah sebesar Ф. Dengan menggunakan trigonometri dasar dapat dihitung bahwa : = r cos Ф dan = r sin Ф (, ) r (,) Η r Η IF-UTAMA V-5
Titik hasil rotasi aitu dan dapat ditentukan sebagai berikut : = r cos (φ+θ) = r cos φ cos θ - r sin φ sin θ = cos θ - sin θ = r sin (φ+θ) = r cos φ sin θ + r sin φ cos θ = sin θ + cos θ Maka jika titik, dirotasi terhadap (,) dengan sudut θ adalah Rotasi titik X = cos θ - sin θ Y = sin θ + cos θ Jika pivot point berada di titik (p,p) maka rotasi titik dapat dirumuskan sebagai berikut : Rotasi titik terhadap (p, p) = r + (-r) cos θ - (-r) sin θ = r + (-r) sin θ + (-r) cos θ 1. Translasi t= -r & t= -r 2. Rotasi sebesar θ 3. Translasi t= r & t= r (, ) r (,) ( r, r ) r IF-UTAMA V-6
Dengan menggunakan matriks rotasi dapat dirumuskan sebagai berikut : Matriks Rotasi ' cosθ = ' sinθ sinθ cosθ Contoh Rotasi Hitung apabila Titik (2,7) dirotasi sebesar 9 terhadap titik (,) Jawab (2,7) 7 cos( 9 ) sin( 9 ) 2 = 2 sin( 9 ) cos( 9 ) 7 / (7,-2) 5.4 Scalling (Penskalaan) Scalling atau penskalaan adalah proses untuk mengubah ukuran objek, dengan cara Mengubah jarak setiap titik pada objek terhadap titik acuan. Objek dapat diskalakan dengan arah horizontal maupun vertical dengan cara mengalikan koordinat tiap objek dengan factor konstanta. Pada proses ini perlu dispesifikasikan dua hal aitu : 1. Faktor penskalaan: s & s real: (..N] 2. Titik acuan (f,f) Jenis penskalaan ada dua aitu uniform dan diferensial. Penskalaan Uniform terjadi bila factor vertical sama dengan horizontal, sedangkan diferensial jika kedua factor tersebut berbeda. Penskalaan terhadap titik (,) =.s =.s IF-UTAMA V-7
Penskalaan terhadap titik (,) dapat dirumuskan sebagai berikut, dengan konsekuensi bentuk dan posisi objek berubah. Jika <S<1: lebih dekat ke (,), S=1: ukuran tetap, 1<S: lebih jauh dari (,). Untuk penskalaan terhadap titik (Xp,Yp) dapat dirumuskan sebagai berikut : Penskalaan terhadap titik (f,f) = f + (-f).s = f + (-f).s ( f, f ) berikut : Penskalaan uniform untuk poligon, lingkaran dan elips, dapat dilihat pada table Poligon Lingkaran Objek Penskalaan Transformasikan titik-titik sudut Gambar ulang tiap garis Transformasikan titik pusat Sesuaikan ukuran jari-jari Gambar ulang tiap titik IF-UTAMA V-8
IF-UTAMA V-9 Objek Penskalaan Ellips Transformasikan sumbu maor dan minor Gambar ulang tiap titik Seperti transformasi sebelumna penskalaan juga dapat direpresentasikan dalam bentuk persamaan matriks. Persamaan Matriks Penskalaan terhadap titik (,) Persamaan Matriks Penskalaan terhadap titik (f,f) Contoh Scalling : Persegi panjang dengan koordinat (4,2), (1,2), (4,4), (1,4) Scalling factor ½ Koordinat persegi panjang sesudah transformasi (2,1), (5,1), (2,2), (5,2) = S S ' ' + = f f f f S S ' '
5.5 Transformasi Lain Selain transformasi dasar aitu translasi, rotasi dan scalling, masih banak jenis transformasi lain ang dapat diaplikasikan pada objek grafis. Pada diktat ini akan dibahas dua transformasi lain ang sering digunakan aitu refleksi dan shear. 5.5.1 Refleksi Refleksi adalah transformasi ang membuat mirror atau pencerminan dari suatu objek grafis. Refleksi disusun relative terhadap sumbu refleksi. Contoh refleksi terhadap garis =- dapat dilihat pada gambar berikut. Refleksi terhadap sumbu dapat dinatakan dengan matriks : 1 1 1 Jika suatu objek dicerminka terhadap sumbu, maka, koordinat tetap sama tetapi koordinat berubah menjadi berlawanan dengan posisi koordinat asal. Refleksi terhadap sumbu dapat direpresentasikan dalam matriks berikut : 1 1 1 Objek asli Objek setelah refleksi Objek asli Objek setelah refleksi IF-UTAMA V-1
Refleksi terhadap garis =m pada bidang dapat dibuat merupakan kkombinasi dari transformasi translasi-rotasi-refleksi. Secara umum pertama-tama dilakukan translasi garis mencapai titik potong koordinat. Kemudian garis dirotasi ke salah satu sumbu dan refleksi objek menurut sumbu tersebut. Objek dan garis dirotasi sehingga mencapai sumbu lainna. 5.5.2 Shear Shear adalah bentuk transformasi ang membuat distorsi dari bentuk suatu objek, seperti menggeser sisi tertentu. Dua macam shear ang umum adalah shear terhadap sumbu dan sumbu. Matriks transformasi shear dapat dirumuskan sebagai berikut 1 Sh 1 1 Matriks transformasi untuk shear terhadap sumbu adalah : 1 Sh 1 1 Shear juga dapat dilakukan terhadap garis tertentu ang sejajar dengan sumbu dengan bentuk matriks : 1 Sh Sh. Y Re f 1 1 IF-UTAMA V-11
5.6 Rangkuman 1. Setelah suatu objek grafis dibangun, kita dapat melakukan transformasi terhadap objek grafis tersebut dengan berbagai cara tanpa menambahkan komponen baru apapun pada objek grafis tersebut. 2. Transformasi dasar pada objek grafis adalah translasi, rotasi dan scalling. 3. Translasi dan rotasi disebut juga sebagai rigid bod transformation aitu transformasi ang hana mengubah posisi objek, tanpa mengubah bentukna 4. Untuk melakukan translasi perlu dikatahui titik awal dan vector translasi, untuk melakukan rotasi perlu diketahui sudut dan pivot point sedangkan untuk menghitung scalling perlu diketahui factor penskalanna 5. Refleksi adalah transformasi ang membuat mirror atau pencerminan dari suatu objek grafis 6. Shear adalah bentuk transformasi ang membuat distorsi dari bentuk suatu objek, seperti menggeser sisi tertentu. Dua macam shear ang umum adalah shear terhadap sumbu dan sumbu. 5.7 Latihan Soal 1. Hitunglah dengan menggunakan matriks, translasi segitiga dengan koordinat berikut A(5,5), B(15,5) dan (5,15) dengan vektor translasi (1,2) 2. Buktikan bahwa matriks refleksi terhadap garis = ekuivalen dengan refleksi terhadap sumbu ang diikuti rotasi berlawanan dengan jarum jam dengan sudut rotasi 9 3. Buatlah Algoritma untuk merefleksi sebuah heagon terhadap titik pusat (,), seperti terlihat pada ilustrasi berikut (Diasumsikan sudah ada fungsi menggambar garis aitu drawline(1, 2, 1,2)) 4. Buatlah algoritma untuk merotasi sebuah garis dengan sudut 3 secara kontinu berlawanan arah dengan jarum jam sampai garis tersebut melewati titik semula. IF-UTAMA V-12
5. Buatlah algoritma untuk merotasi sebuah garis dengan sudut 9 bolak-balik sampai 1 kali. 6. Buatlah algoritma untuk memindahkan sebuah lingkaran. 7. Buatlah program Java untuk mengimplementasikan soal no 3 dan 4 5.8 Referensi [1] Hearn, Donald, M. Pauline Baker, Computer Graphics, Prentice Hall. [2] Rowe, Glenn W, Computer Graphics with Java, Palgrave, 21 [3] Sutopo, Ariesto Hadi, Pengantar Grafika Komputer, Gava Media, 22 IF-UTAMA V-13