Tuesday, 24 March 2015

Komputer Grafis 7


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