Dalam
pemodelan objek 2D, berbagai objek dimodifikasi dengan melakukan berbagai
operasi fungsi atau operasi transformasi geometri. Transformasi ini dapat
berupa transformasi dasar ataupun gabungan dari berbagai transformasi geometri.
Transformasi ini dikenal dengan Transformasi affine. Pada dasarnya,
transformasi merupakan suatu operasi modifikasi bentuk objek tanpa merusak
bentuk dasar dari objek. Salah satu contoh transformasi adalah transformasi
dari window ke viewport.
Pada Viewport, Objek yang akan
digambar pada layar biasanya mempunyai ukuran yang jauh lebih besar dibanding
dengan ukuran layar, sehingga perlu dilakukan pemetaan transformasi yang
memungkinkan objek tersebut bisa seluruhnya digambar dilayar, tetapi pada layar
dengan koordinat yang terbatas, dan biasanya dibatasi oleh sebuah kotak yang
disebut windows, sedangkan layarnya tersebut disebut Viewport.
Tujuan Transformasi :
·
Merubah atau
menyesuaikan komposisi pandangan.
·
Memudahkan
membuat objek yang simetris
·
Melihat objek
dari sudut pandang berbeda
·
Memindahkan satu
atau beberapa objek dari satu tempat ke tempat lain, biasanya digunakan pada
animasi computer.
Langkah-Langkah
Transformasi Viewing 2 Dimensi :
Pembentukan scene pada WC menggunakan output
primitif atribut. Untuk mendapatkan orientasi tertentu dari window, maka
ditentukan sistem VC 2 dimensi pada WC. Frame digunakan untuk melengkapi
penentuan orientasi dari windows persegi empat . Setelah frame dibentuk dapat
ditransformasikan ke dalam WC untuk menampilkan koordinat. Kemudian viewport
ditentukan dalam normalized NVC (pada batasan antara 0 dan 1) dan memetakan
deskripsi VC dari scene pada Normalized Coordinate. Akhirnya dilakukan clipping
(pemotongan) pada semua gambar yang ada diluar viewport.
Macam-macam
transformasi :
-
Transformasi
Objek, yang ditransformasikan titik-titik yang menyusun objek tersebut.
-
Transformasi
Koordinat, yang diubah system koordinatnya sehingga objek mengalami
transformasi dikarenakan perubahan system koordinat tersebut.
Transformasi dasar pada
objek dua dimensi terdiri dari :
1.
FUNGSI TRANSLASI
Translasi
merupakan bentuk transformasi yang memindahkan posisi suatu objek, baik pada
sumbu x, sumbu y, atau sumbu z. Fungsi yang digunakan untuk melakukan translasi
adalah :
glTranslatef Tx, Ty, Tz
Parameter Tx digunakan untuk menentukan arah
dan seberapa jauh suatu benda akan dipindahkan berdasarkan sumbu x. Parameter
Ty digunakan untuk menentukan arah dan seberapa jauh suatu benda akan
dipindahkan berdasarkan sumbu y. Sedangkan parameter Tz digunakan untuk
menentukan arah dan seberapa jauh suatu benda akan dipindahkan berdasarkan
sumbu z.
Contohnya :
glTranslatef 2, 2, 2
Koordinat
baru titik yang ditranslasi dapat diperoleh dengan menggunakan rumus:
x ’ = x +
trx
y ‘ = y +
try
dimana
(x,y) adalah koordinat asal suatu objek dan (x’,y’) adalah koordinat baru objek
tersebut setelah ditranslasi. Translasi adalah transformasi dengan bentuk yang
tetap memindahkan objek apa adanya. Dengan demikian setiap titik dari objek
akan ditranslasi dengan besaran yang sama.
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 );
2.
Rotasi
Rotasi
merupakan bentuk transformasi yang digunakan untuk memutar posisisuatu benda.
Fungsi yang digunakan untuk melakukan rotasi ialah :
glRotatef(θ, Rx, Ry, Rz)
Parameter
yang dibutuhkan pada fungsi tersebut ada 4 macam, yaitu parameter θ untuk besar
sudut putaran, parameter Rx untuk putaran berdasarkan sumbu x, parameter Ry
untuk putaran berdasarkan sumbu y, dan parameter Rz untuk putaran berdasarkan
sumbu z. Jika parameter θ bernilai postif, maka objek akan diputar berlawanan
arah jarum jam. Sedangkan jika parameter θ bernilai negatif, maka objek akan
diputar searah jarum jam. Contohnya :
glRotatef -30,
2, 2, 1
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 );
3.
Fungsi Skala
Skalasi
merupakan bentuk transformasi yang dapat mengubah ukuran (besar-kecil) suatu
objek. Fungsi yang digunakan untuk melakukan skalasi ialah :
glScalef(Sx, Sy, Sz)
Perubahan
ukuran suatu objek diperoleh dengan mengalikan semua titik atau atau vertex
pada objek dengan faktor skala pada masing-masing sumbu (parameter Sx untuk
sumbu x, Sy untuk sumbu y, dan Sz untuk sumbu z). Contohnya :
glScalef(2, 2, 2)
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 );
·
0 komentar:
Posting Komentar