0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan10 halaman

Transformasi Window ke Viewport

Ringkasan dokumen tersebut adalah: 1) Dokumen tersebut membahas tentang transformasi grafika komputer yang meliputi translasi, rotasi, dan skala serta contoh program transformasi menggunakan Delphi.

Diunggah oleh

Djn Nalle
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
75 tayangan10 halaman

Transformasi Window ke Viewport

Ringkasan dokumen tersebut adalah: 1) Dokumen tersebut membahas tentang transformasi grafika komputer yang meliputi translasi, rotasi, dan skala serta contoh program transformasi menggunakan Delphi.

Diunggah oleh

Djn Nalle
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

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:
 

15 November 2008

Primitif Grafika
Posted by Falley under Grafkomp, ILKOMP | Tags: Grafkomp, ILKOMP, Primitif Grafika, TI |
Leave a Comment 

2.1 ELEMEN GAMBAR UNTUK MENCIPTAKAN GAMBAR DALAM KOMPUTER


Penghasilan citra pada grafika komputer menggunakan primitif grafik dasar. Primitif ini
memudahkan untuk merender (menggambar pada layar monitor) sebagaimana penggunaan
persamaan geometrik sederhana.
Contoh primitif grafik dasar (Gambar 2.1) adalah :
o Titik
o Garis, Segiempat
o Kurva, Lingkaran, ellipse, kurva bezier, kurva lainnya
o Fill area
o Text Objek kompleks dapat dibuat dengan kombinasi
dari primitif ini. Adapun contoh grafik primitif yang lain adalah :
o Poligaris yaitu urutan garis lurus yang saling terhubung.
o Teks adalah bentuk bahasa tulisan dengan simbol-simbol tertentu. Teks merupakan kumpulan
lebih dari dua karakter.
o Citra raster adalah gambar yang dibuat dengan piksel yang membedakan bayangan dan
warna. Citra raster disimpan dalam komputer sebagai larik bernilai numerik. Larik tersebut
dikenal sebagai piksel map atau bitmap. Ada tiga cara untuk menghasilkan citra grafik yaitu
Citra didisain dengan tangan, Citra yang didapat dari perhitungan dan Citra yang discan.
Pemaparan citra raster dinyatakan oleh piksel dengan video displays (Cathod-ray Tube CRT),
flat panel dispalys (LCD), hardcopy (printer laser, dot matrix printers, ink-jet printers). Contoh
proses pemaparan permukaan adalah citra yang ditangkap lalu disimpan di frame buffer,
kemudian digunakan untuk mewarnai sebuah titik pada permukaan pemapar. Selanjutnya proses
scan di CRT. Frame buffer adalah matriks 2 dimensi yang mewakili piksel pada pemapar.
Ukuran matriks harus cukup untuk menyimpan kedalam warna pemapar untuk semua piksel.
Sebagai contoh pemapar (monitor) berresolusi 1280 x 1024 mempunya kedalaman warna 24 bit
(~16 juta warna) membutuhkan ruang simpan sekitar 4 Mb.
o Piksel dan Bitmap. Jumlah bit yang digunakan untuk mewakili warna/bayangan dari masin-
masing piksel (picture element = pixel). 4 bit/piksel = 24 = 16 level abu-abu

2.2 INPUT PRIMITIF GRAFIK DAN PIRANTINYA


Sebagaimana banyak piranti dan cara untuk pemaparan output grafika komputer, demikian pula
untuk piranti inputnya, yaitu :
o Keyboards
o Tombol
o Mouse
o Graphics tablets
o Joysticks dan trackballs
o Knobs
o Space balls dan data gloves

Masing-masing input ini mempunyai cara masing-masing untuk mengirimkan input ke


komputer. Input ini diinterpretasikan oleh aplikasi grafika komputer dan dipresentasikan ke
pengguna melalui layar monitor. Data yang diinputkan disebut primitif input.
Beberapa primitif input diantaranya sebagai berikut :
o Titik
o Strings (keyboards, suara)
o Pilihan (tombol, layar sentuh)
o Valuators (analogue dial)
o Locator (mouse)
o Ambil (pemilihan sebagian citra, mouse, lightpen)

2.3 PEMROGRAMAN GRAFIKA KOMPUTER


Ada tiga komponen untuk kerangka kerja aplikasi grafika komputer, yaitu :
o Model aplikasi
o Program aplikasi
o Sistem grafik

Sekarang telah banyak beredar di pasaran aplikasi pengembang cepat (Rapid Development
Applications / RAD) seperti Delphi, Borland C++, Visual C++ dan Visual Basic. RAD ini
memudahkan dalam pembuatan antarmuka, form, tombol, dan lain-lain sehingga dapat
membantu percepatan dalam pembuatan program aplikasi grafik karena kode yang kompleks
untuk pembuatan antarmuka, form, tombol, dan lain-lain sudah tidak perlu dibuat lagi. RAD juga
langsung memudahkan pemrograman Windows.

2.4 TRANSFORMASI
Menurut Suyoto (2003), transformasi adalah memindahkan objek tanpa merusak bentuk. Contoh
transforamsi adalah transisi, penskalaan, putaran/rotasi, balikan, shearing dan gabungan.

Tujuan transformasi adalah


o Merubah atau menyesuaikan komposisi pemandangan
o Memudahkan membuat objek yang simetris
o Melihat objek dari sudut pandang yang berbeda
o Memindahkan satu atau beberapa objek dari satu tempat ke tempat laein. Ini biasa dipakai
untuk animasi computer

Untuk dapat menggunakan transformasi dengan baik maka diperlukan pengetahuan operasi
matrisk dan vector

Operasi matriks:
o Penambahan dan pengurangan
o Perkalian
o Determianan
o Transpos
o Kebalikan (inverse)

Operasi vektor
o Penambahan dan pengurangan
o Perkalian titik (dot product)
o Perkalian silang (cross product)

2.5 OpenGL
OpenGL adalah suatu spefikasi grafik yang low-level yang  menyediakan fungsi untuk
pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk
mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. OpenGL juga
merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API)
yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat
berjalan pada sistem operasi Windows, UNIX dan sistem operasi lainnya. OpenGL pada awalnya
didesain untuk digunakan pada bahasa pemrograman C/C++, namun dalam perkembangannya
OpenGL dapat juga digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl, Ada,
Visual Basic, Delphi, maupun Fortran. Namun   OpenGL di-package secara berbeda-beda sesuai
dengan bahasa pemrograman yang digunakan. Oleh karena itu, package OpenGL tersebut dapat
di-download pada situs [Link] sesuai dengan bahasa pemrograman yang akan
digunakan.
Selain OpenGL ada juga tools/library grafik yang dapat dipergunakan yaitu DirectX. Namun
tools ini hanya dapat dipergunakan pada Microsoft Windows. Tabel 2.1 menunjukkan
perbandingan antara OpenGL dengan DirectX. Perbandingan ini didasarkan pada buku “OpenGL
Game Programming”, namun ada beberapa feature yang mungkin sudah ditambahkan pada
DirectX versi terbaru.

Masing-masing
perintah atau fungsi dalam OpenGL mempunyai struktur dan format yang sama. Tabel 2.2
menunjukkan beberapa contoh perintah yang biasa digunakan pada OpenGL.
2.6 The OpenGL Utility Toolkit (GLUT)
GLUT dapat menyederhanakan implementasi program dengan menggunakan OpenGL. GLUT
didesain secara serdehana untuk merender sebuah program yang dibuat dengan OpenGL. Versi
GLUT yang ada pada saat ini adalah 3.7.6. GLUT juga mendukung fungsi-fungsi, antara lain:
o Mutiplewindows dalam render window OpenGL.
o Memproses kejadian Callback.
o Dapat menerima  reaksi dari input (antara lain mouse dan keyboard).
o Mempermudah cascading fasilitas menu pop-up.
o Mendukung bitmap dan stroke fonts.
o Manajemen windows.

Anda mungkin juga menyukai