Pages

Wednesday, May 1, 2013

Transformasi Objek pada Open GL


Transformasi  dua dimensi adalah suatu model atau bentuk atau teknik memindahkan atau mengubah nilai posisi objek dalam sistem koordinat dua dimensi. Pemindahan objek ini dapat diartikan sebagai pemindahan titik. Ada dua cara yang dapat digunakan untuk mentransformasi gambar yaitu :
-         



Transformasi objek
  • Definisinya  adalah  mengubah  koordinat-koordinat  dari  tiap  titik  di  objek  dengan beberapa  aturan  ,
  • meninggalkan underlying sistem koordinat yang tidak bisa diubah lagi.
-          Transformasi koordinat
  •   Definisinya adalah system koordinat yang baru dibuat sebelumnya merupakan perwakilan dari semua titik
  •     objek dalam sistem yang baru.

Tujuan transformasi adalah :
  1. Merubah atau menyesuaikan komposisi pemandangan.
  2. Memudahkan membuat objek yang simetris.
  3. Melihat objek dari sudut pandang yang berbeda.
  4. Memindahkan satu atau beberapa objek dari satu tempat ke tempat lain, ini biasa dipakai untuk animasi komputer.
Dalam transformasi   pada   dunia 2 dimensi, ada tiga transformasi dasar yang dapat dilakukan yaitu  translasi, penskalaan, rotasi.
a.    Perpindahan (Translasi)
Pengertian translasi adalah perpindahan objek dari titik P(x, y) ke titik P(x’, y’) secara linier. Dalam translasi dua dimensi diperlukan dua parameter, yaitu pemindahan kearah sumbu x dan pemindahan kearah sumbu y. Translasi (dx, dy) didefinisikan dengan :
x’= x + dx
y’ = y + dy
Fungsi dasar untuk Translasi (perubahan Posisi) objek
GLAPI void APIENTRY glTranslated( GLdouble x, GLdouble y, GLdouble z );
GLAPI void APIENTRY glTranslatef( GLfloat x, GLfloat y, GLfloat z );

Bentuk umum :
glTranslatef( x, y, z )
glTranslated( x, y, z )
glVertex3f(1.0f, -1.0f, -10.0f );
glColor3f( 1.0, 0.0, 0.0 );
glVertex3f(-1.0f, -1.0f, -10.0f );
glEnd()











Ilustrasi Translasi



b.   Penskalaan (Scale)
Definisi dari penskalaan m adalah perpindahan objek dari titik P ke titik P, dimana jarak titik P adalah m kali titik P atau suatu operasi yang membuat suatu objek berubah ukurannya baik menjadi mengecil ataupun membesar secara seragam atau tidak seragam tergantung pada faktor penskalaan yang diberikan.
Fungsi dasar untuk skala (perubahan ukuran) objek
void APIENTRY glScaled( GLdouble x, GLdouble y, GLdouble z ); GLAPI void APIENTRY glScalef( GLfloat x, GLfloat y, GLfloat z );

Proses penskalaan dapat didefinisikan dengan :
x = mx x
y’ = my y
Bentuk umum :
glScalef( xf, yf, zf );

c.    Perputaran (Rotate)
Definisi rotasi adalah perpindahan objek dari titik P(x, y) ke titik P(x’,y’) yang berupa pemindahan berputar sebesar sudut θ atau suatu operasi yang menyebabkan objek bergerak berputar pada titik pusat atau pada sumbu putar yang dipilih berdasarkan sudut putaran tertentu.

Fungsi dasar untuk Rotasi objek

GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
GLAPI void APIENTRY glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );

Operasi rotasi dapat diuraikan sebagai berikut :
1.    Rotasi dari titik P yang berada di sumbu x, P(x, 0) menjadi P(x, y’) dapat digambarkan dengan :
x = x .cos θ
y = x.sin θ
2.    Rotasi dari titik P yang berada di sumbu y, P(y, 0) menjadi P(x, y’) dapat digambarkan dengan :              
               x = -y .cos θ
y = y.sin θ
3.    Rotasi dari titik P(x, y) menjadi P(x’, y’) merupakan kombinasi dari kedua macam transformasi di atas R = Rx + Ry.
x = x .cos θ - y.sin θ
y = x.sin θ  + y.cos θ
Bentuk umum :
              glRotatef( sudut, sx, sy, sz );

Ilustrasi Rotasi


0 komentar:

Post a Comment

Statistic

Buscar