Anda di halaman 1dari 5

1kANSLASI SkALA DAN kC1ASI

erp|ndahan (1rans|as|)
engerLlan Lranslasl adalah perplndahan ob[ek darl LlLlk (x y) ke LlLlk '(x' y') secara llnler ualam
Lranslasl dua dlmensl dlperlukan dua parameLer yalLu pemlndahan kearah sumbu x dan pemlndahan ke
arah sumbu y 1ranslasl (dx dy) dldeflnlslkan dengan
x' x + dx
y' y + dy

8enLuk umum
- gl1ranslaLef( x y z )
- gl1ranslaLed( x y z )
glverLex3f(10f 10f 100f )
glColor3f( 10 00 00 )
glverLex3f(10f 10f 100f )
glLnd()

enska|aan (Sca|e)
ueflnlsl darl penskalaan m adalah perplndahan ob[ek darl LlLlk ke LlLlk ' dlmana [arak LlLlk ' adalah m
kall LlLlk aLau suaLu operasl yang membuaL suaLu ob[ek berubah ukurannya balk men[adl mengecll
aLaupun membesar secara seragam aLau Lldak seragam LerganLung pada fakLor penskalaan yang
dlberlkan

roses penskalaan dapaL dldeflnlslkan dengan
x' mx x
y' my y
8enLuk umum
- glScalef( xf yf zf )

erputaran (kotate)
ueflnlsl roLasl adalah perplndahan ob[ek darl LlLlk (x y) ke LlLlk '(x'y') yang berupa pemlndahan
berpuLar sebesar suduL aLau suaLu operasl yang menyebabkan ob[ek bergerak berpuLar pada LlLlk pusaL
aLau pada sumbu puLar yang dlplllh berdasarkan suduL puLaran LerLenLu

Cperasl roLasl dapaL dluralkan sebagal berlkuL
1 8oLasl darl LlLlk yang berada dl sumbu x (x 0) men[adl '(x' y') dapaL dlgambarkan dengan
x' x cos
y' xsln
2 8oLasl darl LlLlk yang berada dl sumbu y (y 0) men[adl '(x' y') dapaL dlgambarkan dengan
x' y cos
y' ysln
3 8oLasl darl LlLlk (x y) men[adl '(x' y') merupakan komblnasl darl kedua macam Lransformasl dl aLas
8 8x + 8y
x' x cos ysln
y' xsln + ycos
8enLuk umum
- gl8oLaLef( suduL sx sy sz )
encerm|nan (kef|ect|on)
ueflnlsl pencermlnan adalah Lransformasl ob[ek yang mengubah lokasl ob[ek pada kedudukan yang
berlawanan dengan sembarang sumbu yang dlplllh Sumbu lnl blsa sumbu x sumbu ysumbu z aLau
sumbu laln yang dlLenLukan oleh pengguna 1ransformasl lnl menghasllkan clLra cermln ob[ek Lerhadap
sumbu LerLenLu bagl ob[ek yang dlcermlnkan

Contoh rogram
8erlkuL lnl adalah conLoh program graflk openCL yang menggunakan Lranslasl roLasl dan skala

lnl adalah source code yang dlpakal sebelumnya hanya dlberlkan sedlklL modlflkasl

#include <GL/glut.h
#include <stdlib.h
void segitiga(void) {
glColor3f(0.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-120, 140, 0.0);
glVertex3f(120, 140, 0.0);
glVertex3f(-120, 0, 0.0);
glEnd();
}
void trans(void){
glClear(GL_CJLJR_BUFFER_BIT);

glColor3f(0.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-120, 140, 0.0);
glVertex3f(120, 140, 0.0);
glVertex3f(-120, 0, 0.0);
glEnd();

glTranslatef(0,-150,0);
segitiga();

glFlush();
glutSwapBuffers();
}
int main(int argc, char **argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow ("Drawing by Muhammad Sofyan");
glClearColor(0.0, 0.0, 0.0, 0.0);
gluJrtho2D(-320., 320., -240.0, 240.0);
glutDisplayFunc(trans);
glutMainLoop();
return 0;
}


Saya menggunakan funcLlon baru yalLu Lrans unLuk menampllkan hasll perubahan yang dlalaml oleh
funcLlon seglLlga

8erlkuL pen[elasannya slngkaL

void segitiga(void) {
glColor3f(0.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(-120, 140, 0.0); ,enggambar seg|t|ga pada func seg|t|ga()
glVertex3f(120, 140, 0.0);
glVertex3f(-120, 0, 0.0);
glEnd();
}
void trans(void){
glClear(GL_CJLJR_BUFFER_BIT); members|hkan |ayar

glColor3f(0.0, 1.0, 1.0); member| warna pada ob[ek openg|
glBegin(GL_TRIANGLES);
glVertex3f(-120, 140, 0.0); menggambar seg|t|ga yang serupa
glVertex3f(120, 140, 0.0);
glVertex3f(-120, 0, 0.0);
glEnd();

glTranslatef(0,-150,0); merubah pos|s| seg|t|ga() dengan koord|nat y 1S0
segitiga();

Pasll saaL runnlng

Cambar seglLlga() normal




SeglLlga yang Lelah dlberl Lranslasl glTranslatef(0,-150,0);




SeglLlga yang Lelah dlberl roLasl glRotatef(180,1,1,0);





Cambar seglLlga yang dlbesarkan dengan skala glScalef(1.5,1.5,0);

Anda mungkin juga menyukai