3.1 Transformasi window to viewport
Objek yang akan digambar pada layar biasanya memiliki ukuran yang jauh
lebih besar dibanding ukuran layar, sehingga perlu dilakukan
pemetaan/transformasi yang memungkinkan objek tersebut bisa digambar
pada layar. Meskipun demikian, objek seringkali terlalu rumit untuk
ditampilkan pada layar dengan koordinat yang sangat terbatas. Sehingga
biasanya kita memilih bagian tertentu dari objek untuk ditampilkan pada
layar. Didalam memilih objek yang akan ditampilkan biasanya dibatasi
oleh sebuah kotak yang disebut dengan jendela (window).
Dalam praktek kita bisa menggunakan seluruh atau sebagian lebar layar
untuk menmpilkan objek yang berada pada sebuah jendela. Daerah layar
yang dipilih untuk menampilkan objek yang dimaksud disebut viewport.
Dalam keadaan normal, viewport akan meliputi seluruh layar lebar.
Meskipun demikian, kita bisa memilih bagian tertentu dari layar untuk
dijadikan sebuah viewport.
3.2 Manipulasi Gambar/Transformasi
Sejumlah objek seringkali mempunyai sifat simetri. Sehingga untuk
menggambar seluruh objek, cukup dilaksanakan dengan melakukan manipulasi
terhadap objek yang sudah ada, misalnya dengan pencerminan, pergeseran,
atau pemutaran objek yang sudah digambar terlebih dahulu.
Kita akan mempelajari cara mentransformasikan objek grafis khususnya
objek grafis 2D sebagai salah satu cara untuk memanipulasi objek grafis
dan sistem koordinat yang dipakai dengan cara yang lebih terorganisir
dan efisien. Salah satu contoh penting untuk diketahui adalah pemakaian
transformasi jendela ke viewport.
Ada dua cara untuk melakukan transformasi, yaitu transformasi objek dan
transformasi kordinat. Pada transformasi objek semua titik pada
sembarang objek akan dirubah sesuai dengan aturan tertentu sementara
kordinatnya tetap. Pada transformasi sistem koordinat, objek tetap
tetapi karena sistem koordinatnya diganti maka kedudukan objek harus
disesuaikan dengan kedudukan sistem kordinat yangbaru.
Jenis-jenis transformasi:
1. Translasi
Sembarang titik pada bidang xy bisa digeser ke sembarang tempat dengan
menambahkan besaran pada absis x dan ordinat y. Translasi adalah
transformasi dengan bentuk tetap memindahkan objek apa adanya. Dengan
menggunakan persamaan Q = PM + tr, maka hasil pergeseran bisa dinyatakan
sbb:
(Qx, Qy) = (Px +trx, Py+try)
dimana trx adalah vektor translasi menurut sumbu x sedang try adalah
vektor translasi menurut sumbu y, dan matrik M bisa dikatakan sebagai
matrix identitas.
Sembarang objek bisa digeser ke posisinya yang baru dengan
mengoperasikan persamaan diatas pada setiap titik dari objek tersebut.
Hal ini karena setiap garis dari objek tersebut terdiri dari titik-titik
yang jumlahnya tak terbatas, maka proses penggeseran bisa berlangsung
sangat lama. Tetapi pada kenyataannya kita cukup menggeser dua titik
ujungnya saja dan kemudian menggandeng dua titik tersebut untuk
membentuk garis hasil pergeseran.
Contoh translasi:
Untuk menggambarkan translasi objek yang berupa garis dengan koordinat A(10,10), B(30,10) dengan vektor translasi (10,20)
Titik A Qx=Px +trx =10 + 10 =20
Qy=Py + try =10+20=30
Hasil translasi A = (20, 30)
Titik B Qx=Px + trx = 30+10 = 40
Qy=Py + try = 10+20 =30
Hasil translasi B = (40, 30)
2. Rotasi
Kita bisa memutar objek searah dengan arah perputaran jarum
jam(dinyatakan dengan sudut negatif) atau berlawanan arah dengan arah
jarum jam(dinyatakan sebagai sudut positif).
Dengan menganggap bahwa besarnya sudut putar adalah sama dengan , maka posisi sebuah titik yang baru adalah:
Qx = Pxcos( ) - Pysin( )
Qy = Pxsin( ) + Pycos( )
Dengan menggunakan notasi matrix, maka besaran M bisa dikatakan sbb:
M = cos(0) sin(0)-sin(0) cos(0)
3. Skala
Penskalaan adalah proses untuk memperbesar atau memperkecil suatu
gambar. Dengan faktor absolut yang lebih besar dari 1, akan diperoleh
gambar yang lebih besar dan semakin menjauh dari titik(0,0). Sebaliknya
dengan faktor skala yang mempunyai nilai absolut lebih kecill dari 1,
akan diperoleh gambar yang lebih kecil dan mendekat ke titik (0,0).
Dengan menggunakan persamaan Q=PM+tr, maka hasil penggeseran bisa dinyatakan sebagai:
(Qx, Qy)=(SxPx, SyPy)
Dengan Sx adalah faktor skala ke arah mendatar dan Sy adalah faktor
skala arah tegak dan ofset vektor tr bernilainol. Dengan menggunakan
notasi matrix, maka matrixM bisa dinyatakan sbb:
M= (sx 0)
(0 sy)
3.3 PROGRAM TRANSFORMASI
Dengan memakai delphi, Buatlah program dengan tampilan seperti dibawah ini. Bila program dijalankan, ada dua pilihan:
Jenis transformasi Memutar
Jika memilih transformasi memutar kita disuruh menginputkan besar sudut
yang diminta dan kemudian inputkan x1, y1, x2, y2 lalu klik gambar maka
akan tampil gambar pada kotak paintbox dan klik transformasi maka gambar
akan memutar sesuai sudut yang diisi. Dan gambar asli tetap nampak.
Jenis transformasi Perbesar/perkecil
Jika memilih transformasi perbesar/perkecil kita disuruh menginputkan
besar skalanya dan kemudian inputkan x1, y1, x2, y2 lalu klik gambar
maka akan tampil gambar pada kotak paintbox dan klik transformasi maka
gambar akan tampil sesuai skala yang diisi.
Programnya adalah sbb:
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar