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 :
- 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 :
- Merubah atau menyesuaikan komposisi pemandangan.
- Memudahkan membuat
objek yang simetris.
- Melihat objek dari sudut
pandang yang berbeda.
- 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()
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