Anda di halaman 1dari 15

TRANSFORMASI

Transformasi
• Translasi  objek dipindah kelokasi baru tanpa mengubah bentuk ukuran
atau orientasinya.
• Skala  objek diperbesar/diperkecil.
• Rotasi/Putar  objek diputar terhadap titik tertentu tanpa mengubah
bentuk dan ukurannya.
contoh
skala

translasi
before

rotasi
after
Pengenalan
 Konsep yang terpenting dalam grafika
komputer adalah Transformasi Affine.
 Pada dasarnya, transformasi ini
adalah memindahkan objek tanpa
merusak bentuk.
Transformasi Affine
 Transformasi Affine mempertahankan
garis dan bidang.
– Mempertahankan keliniearan dan
kedatarannya
 Garis tetap sebagai garis
 Bidang tetap datar
...
Transformasi Affine mempertahankan garis dan bidang.
– Jika 2 garis paralel dikenakan transformasi yang sama maka hasil setelah
transformasi tetap juga paralel.
– Demikian juga untuk bidang
glTranslated
Akan ditranslasikan bangunan persegi dengan glTranslated( x, y,
z) dan
warnanya diganti dengan warna biru

void myDisplay(void)
{
glColor3f (0.0, 1.0, 0.0);
glRectf (300.0, 200.0, 400.0, 300.0);
glColor3f (0.0, 0.0, 1.0);
glPushMatrix();
glTranslated(150,150,0);
glRectf (300.0, 200.0, 400.0, 300.0);
glPopMatrix();
glFlush ();
}
Coding :
void myDisplay(void) void main(int argc, char** argv)
#include <windows.h> { {
#include <glut.h> glColor3f (0.0, 1.0, 0.0); glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE |
void myInit(void) glRectf (300.0, 200.0, 400.0, 300.0); GLUT_RGB);
{ glutInitWindowSize(640,480);
glColor3f (0.0, 0.0, 1.0); glutInitWindowPosition(100, 150);
gluOrtho2D(0.0, 640.0, 0.0,
480.0); glPushMatrix(); glutCreateWindow("transformasi");
} glutDisplayFunc(myDisplay);
glTranslated(150,150,0); myInit();
glutMainLoop();
glRectf (300.0, 200.0, 400.0, 300.0); }

glPopMatrix();

glFlush ();

}
glRotate
Bangun persegi diputar glRotate(degrees, x, y, z); , warnanya diganti dengan
warna merah.

void myDisplay(void)
{
glColor3f (0.0, 0.0, 1.0);
glRectf (300.0, 200.0, 400.0, 300.0);
glColor3f (1.0, 0.0, 0.0);
glPushMatrix();
glRotatef(30.0f, 0.0f, 0.0f, 1.0f);
glRectf (300.0, 200.0, 400.0, 300.0);
glPopMatrix();
glFlush ();
}
Coding :
#include <windows.h> void myDisplay(void) void main(int argc, char** argv)
#include <glut.h> { {
glColor3f (0.0, 0.0, glutInit(&argc, argv);
void myInit(void) 1.0); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
{ glutInitWindowSize(640,480);
glRectf (300.0, 200.0, glutInitWindowPosition(100, 150);
gluOrtho2D(0.0, 640.0, 0.0, 400.0, 300.0);
480.0); glColor3f (1.0, 0.0, glutCreateWindow("transformasi");
} 0.0); glutDisplayFunc(myDisplay);
myInit();
glPushMatrix(); glutMainLoop();
}
glRotatef(30.0f, 0.0f,
0.0f, 1.0f);

glRectf (300.0, 200.0,


400.0, 300.0);

glPopMatrix();

glFlush ();

}
glScaled
Atau diskala glScaled(x, y, z); dan warnanya diganti
dengan kuning.

void myDisplay(void)
{
glColor3f (0.0, 0.0, 1.0);
glRectf (300.0, 200.0, 400.0, 300.0);

glColor3f (1.0, 1.0, 0.0);


glPushMatrix();
glScalef(0.5f, 0.5f, 1.0f);
glRectf (300.0, 200.0, 400.0, 300.0);
glPopMatrix();
glFlush ();
}
Coding :

#include <windows.h> void myDisplay(void) void main(int argc, char** argv)


#include <glut.h> { {
glColor3f (0.0, 0.0, 1.0); glutInit(&argc, argv);
void myInit(void) glRectf (300.0, 200.0, 400.0, glutInitDisplayMode(GLUT_SINGLE |
{ 300.0); GLUT_RGB);
glColor3f (1.0, 1.0, 0.0); glutInitWindowSize(640,480);
gluOrtho2D(0.0, 640.0, glPushMatrix(); glutInitWindowPosition(100, 150);
0.0, 480.0); glScalef(0.5f, 0.5f, 1.0f);
} glRectf (300.0, 200.0, 400.0, glutCreateWindow("transformasi");
300.0); glutDisplayFunc(myDisplay);
glPopMatrix(); myInit();
glFlush (); glutMainLoop();
} }

Anda mungkin juga menyukai