Kembali lagi dalam pembahasan komputer grafis. Tidak terasa, sudah sampai dengan pembahasan ke tujuh. Setelah ini harus menghadapi Ujian Tengah Semester. Sebelum lebih jauh membahas kegiatan pada Komputer Grafis 7 ini, pada Komputer Grafis 6 kode program mengenai rotasi masih ada kesalahan, untuk itu, sebelum kita membahas yang ketujuh ini ada baiknya bagi para pembaca yang mengikuti pembahasan ini untuk ikut memperbaiki latihan yang dibuat selama enam pertemuan yang lalu. Dari kode program yang saya tuiskan di pembahasan yang lalu yang membuat rotasi
bintang menjadi tidak sempurna adalah dikarenakan ada ketidak tepatan penggunaan
tipe data pada deklarasi variabel. Kode program yang telah direvisi ini hanya
diganti tipe data integer menjadi floating point semua yaitu dengan tipe data
double, namun tidak hanya tipe data yang berubah, penulisan untuk pengambilan
data dari textbox pun berubah dan menggambarpun ada yang berubah yaitu pada
saat penghitungan translasi, scaling, atau rotasi tidak digunakan “round”.
Penggunaan round hanya untuk pembulatan pada saat kita menggambar. Berikut ini
adalah kode program yang sudah diperbaiki, lebih jelasnya bisa dibaca pada
komentar yang ada pada kode program berikut:
Nah, demikian yang dapat saya perbaiki dari kode rogram yang salah pada pembahasan yang lalu. Kembali pada Komputer Grafis Pertemuan 7 yang
membahas kelanjutan dari pertemuan 6 yaitu mengenai Komposit. Jika pada
pertemuan 6 dibahas mengenai cara 1 untuk menghitung dan menggambar hasil
komposit scaling dan rotasi, maka pada pertemuan 7 ini akan dibahas mengenai
cara 2 menghitung dan menggambar komposit scaling dan rotasi. Cara 1 dan cara 2
ini harus menghasilkan hasil yang sama. Jika pada cara 1 kita melakukan satu
per satu tahapannya, pada cara 2 kita harus menghitung matriks perkaliannya
terlebih dahulu baru memasukkan rumus matriks terebut dalam kode program kita.
Cara 2 ini lebih mempersingkat penulisan kode program, namun harus menghitung
dulu untuk mendapatkan rumus dari matriks tersebut.berikut ini adalah
perhiungan untuk mendapat rumus matriks:
Scaling:
Maka
di dapatlah rumus untuk Scaling:
X’
= SX(X+TX)-TX
Y’ = SY(Y+TY)-TY
Dan
untuk Rotasi, perhitungannya sebagai berikut:
Maka
didapatlah rumus Rotasi:
X’
= X.cosθ – Y.sinθ + TX.cosθ – TY.sinθ –TX
Y’ = X.sinθ + Y.cosθ
+ TX.sinθ + TY.cosθ - TY
Setelah
kita mendapat rumus tersebut, kita sudah bisa membuat pivot point untuk scaling
maupun rotasi. Langsung saja kita bahas pada kegiatan praktikum lab pembuatan
kode program untuk pivot point scaling dan rotasi cara kedua ini.
Seperti biasa,
pertama yang harus ditunjukkan adalah tampilan form yang akan kita buat nanti.
Tidak jauh berbeda dengan form yang telah kita buat pada pertemuan 6 yang lalu.
Di sini saya hanya mengganti nama untuk pivot point scaling dan rotasi cara 1
menjadi komposit scaling dan rotasi 1. Berikut ini tampilan awal formnya:
Langsung saja kita beralih untuk pembuatan kode
program pada button Komposit Scaling 2, berikut kode programnya:
Terlihat
bahwa pada saat menghitung, kita hanya perlu memasukkan rumus yang telah kita
hitung dengan matriks pada awal pembahasan tadi.
Berikut
ini adalah tampilan fungsi button Komposit Scaling 2 saat program dijalankan:
Terlihat
dari tampilan di atas bahwa objek bintang membesar sebanyak 2 kali dan tetap
pada posisi tersebut, ini berarti hasil sama dengan ketika kita menekan tombol
Komposit Scaing 1. Kode program dikatakan benar jika hasil cara 1, 2 dan 3
memberikan hasil komposit yang sama.
Berikut ini adalah penulisan kode program untuk
Button Komposit Rotasi 2:
Kode
program pada saat menghitung rotasi juga kita gunakan rumus yang telah kita
hitung dengan matriks pada awal pembahasan pertemuan 7 ini. Tampilan saat
dijalankan adalah:
Tampilan
di atas adalah ketika button Komposit Rotasi 2 di klik satu kali. Jika di klik
berkali-kali akan berputar di tengah, tidak bergerak sama halnya dengan button
Komposit Rotasi 1.
Pada pertemuan 7 ini hanya
dilakukan pratikum untuk cara 2 namun ketika mencoba-coba lagi untuk cara
ketiga ternyata berhasil, jadi saya masukkan juga untuk yang cara ketiga ini. Pada cara ketiga, kita menulis program dengan mengalikan matriks pada program.
Jadi singkatnya kita membuat kode program untuk perkalian matriks yang kita
lakukan seerti pada cara 2. Jika pada cara dua kita menghitung di kertas, pada
cara ketiga ini semua perkalian ditulis dalam kode program dengan looping for.
Awalnya sedikit membingungkan dan bahkan saya tidak mengerti mengapa bisa
seperti itu penulisan kode programnya, namun jika dibaca benar-benar alur dari
setiap looping nantinya kita akan mengerti. Penulisan kode program tidaklah mutlak seperti yang akan saya sampaikan di bawah ini. Semua tergantung dari pola pikir atau logika berpikir para pembaca. Kode program setiap kita bisa saja berbeda. Setelah mendapat penjelasan seperti ini, saya mengerti dengan penulisan seperti ini, mungkin dari para pembaca ada yang berbeda. Seperti apa kode program untuk cara
ketiga yang saya coba uraikan, kita liat penulisan kode programnya di bawah ini:
Kita
sediakan variabel untuk array yang akan menampung matriks 3x3 yaitu matriks tp
untuk translasi ke pusat, r untuk rotasi, s untuk scaing, ta untuk translasi ke
awal, temp1 dan temp 2 untuk menampung hasil perkalian matriks 3x3. Kita juga
menyediakan matriks 1x3 untuk hasil dan pengali x dan y. sulit untuk
dibayangkan tapi coba saja untuk dibayangkan denga model perhitungan matriks
yang telah dibahas di awal pembahasan pertemuan ini. Untuk matriks 3x3 kita
deklarasikan dengan array 2 dimensi, penuisannya bisa kita lihat pada kode
program di atas. Untuk lebih jelasnya seperti apa penulisannya, kita lihat
untuk scaing cara 3 berikut ini:
Sedikit lebih rumit mungkin untuk memahami, tapi pelan-pean dibaca pasti akan mengerti. Mungkin penjelasan di atas juga belum terlalu jelas, semoga bisa dipahami. Berikutnya adalah kode program untuk Komposit Rotasi Cara 3:
Pembahasan mengenai tugas jika titik pivot point diubah dari titik (0,0) menjadi titik di P2. Jika pada pembahasan komposit sebelumnya kita membuat komposit scaling dan rotasi pada titik (0,0), maka pada tugas ini kita akan membuat komposit scaling dan komposit rotasi dengan titik acuan (pivot point) pada titik P2, yaitu pada titik bintag[2].x dan bintang[2].y. untuk membuat agar bintang bisa scaling dan rotasi dengan titik pivot point pada P2, kita hanya perlu mengganti nilai xpivot dan ypivot pada program. Potongan program yang perlu diganti adalah sebagai berikut:
Pada
prosedur button gambar kita hanya perlu mengubah titik Xpivot dan Ypivot menjadi
seperti kode program di atas yang diberi tanda merah. Sisanya kode program
sama, tidak perlu diubah lagi.
Tampilannya
sebagai berikut:
Untuk scaling:
Sampai di sini pembahasan untuk Komputer Grafis 7. Untuk cara 3 jika ada revisi lagi akan saya tambahkan pada
pertemuan selanjutnya. Untuk sementara ini hasilnya sudah sama dengan tampilan
cara 1 dan cara 2.
Beristirahat sejenak untuk mempersiapkan Ujian Tengah Semester.. Komputer Grafis 8 akan segera di post lagi ya.. Jadilah pembaca setia blog ini ya.. Thx
Semoga bermanfaat ^.^
No comments:
Post a Comment