Rabu, 01 Mei 2013

Transformasi Objek 2D


Objek grafis 2 dimensi dapat ditransformasi dengan berbagai cara tanpa menambahkan komponen baru. Terdapat bermacam cara untuk melakukan transformasi objek grafis 2 dimensi, di antaranya :

1. Translasi
Translasi merupakan metode transformasi paling sederhana yang dapat diterapkan pada suatu objek grafis. Secara sederhana, translasi adalah memindahkan objek grafis dari suatu tempat ke tempat lain tanpa mengubah tampilan dan orientasi. Translasi dua dimensi diperlukan dua parameter yaitu sumbu x dan sumbu y. 


Translasi (dx, dy) didefiniskan dengan:
x’ = x + dx
y’ = y + dy

Bentuk umum :
glTranslatef(x,y,z);
glTranslated(x,y,z);

2. Rotasi

Rotasi suatu objek grafis adalah memutar pemindahan objek dari suatu titik ke titik lain yang berupa pemindahan berputar sebesar sudut q atau suatu operasi yang menyebabkan objek bergerak berputar pada titik pusat atu pada sumbu putar yang dipilih berdasarkan sudut putaran tertentu.
Operasi rotasi dapat diuraikan sebagai berikut :
·           Rotasi dari titik P yang berada di sumbu x, P(x,0) menjadi P’(x’,y’) dapat digambarkan dengan :
x’ = x cos q
y’ = x sin q
·           Rotasi dari titik P yang berada di sumbu y, P(y,0) menjadi P’(x’,y’) dapat digambarkan dengan :
x’ = -y cos q
y’ = y sin q
·           Rotasi dari titik P (x,y)  menjadi P’(x’,y’) merupakan kombinasi dari kedua macam transformasi di atas, R = Rx + Ry
x’ =  cos q - y sin q
y’ = x sin q + y cos q

Bentuk umum :
glRotatef(sudut, sx, sy,sz);

3. Penskalaan

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 faktor kostanta. Terdapat dua jenis penskalaan yaitu penskalaan uniform dan diferensial. Penskalaan uniform terjadi bila faktor vertical sama dengan horizontal, sedangkan diferensial terjadi jika kedua faktor tersebut berbeda.


Penskalaan uniform untuk poligon, lingkaran, dan ellips dapat dilihat pada tabel berikut :

Bentuk umum :
glScalef(xf, yf, zf);




Tidak ada komentar:

Posting Komentar