Anda di halaman 1dari 9

Kusmadi, S.

ST

ROTASI OBYEK

VEKTOR
Scale
Translate
Rotasi

FUNGSI
Untuk merotasi obyek, kita perlu
mendefinisikan axis dari x, y dan z.
Axis tersebut dapat
menggunakan
glRotatef(sudut,x,y,z)

diatasi

dengan
method

CONTOH
Definisikan sudut:
GLFloat sudut = 0.0;
Buat fungsi untuk merotasi obyek:
void putar(){
glRotatef(sudut, 1.0, 0.0, 0.0);
glRotatef(sudut, 1.0, 0.0, 0.0);
glRotatef(sudut, 1.0, 0.0, 0.0);
glColor3f(0.0, 1.0, 0.0);
glutWireTeapot(2);
}

CONTOH LANJUTAN
Panggil fungsi putar() dari fungsi display(), tingkatkan value
sudut = sudut + 1
void display () {
glClearColor (0.0,0.0,0.0,1.0);
glClear (GL_COLOR_BUFFER_BIT);
glLoadIdentity();
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
putar();
glFlush();
sudut ++;
}

CONTOH LENGKAP
#include <GL/gl.h>
#include <GL/glut.h>
GLfloat sudut = 0.0; //Nilai awal rotasi
void putar () {
glRotatef(sudut, 1.0, 0.0, 0.0); //Rotasi untuk x axis
glRotatef(sudut, 0.0, 1.0, 0.0); //Rotasi untuk y axis
glRotatef(sudut, 0.0, 0.0, 1.0); //Rotasi untuk z axis
glColor3f(1.0, 0.0, 0.0);
glutWireTeapot(2);
}

CONTOH LENGKAP
void display () {
glClearColor (0.0,0.0,0.0,1.0);
glClear (GL_COLOR_BUFFER_BIT);
glLoadIdentity();
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0,
0.0);
putar();
glFlush();
sudut ++;
}

CONTOH LENGKAP
void reshape (int w, int h) {
glViewport (0, 0, (GLsizei)w, (GLsizei)h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective (60, (GLfloat)w /
(GLfloat)h, 1.0, 100.0);
glMatrixMode (GL_MODELVIEW);
}

CONTOH LENGKAP
int main (int argc, char **argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow ("Latihan 7 - Rotasi");
glutDisplayFunc (display);
glutIdleFunc (display);
glutReshapeFunc (reshape);
glutMainLoop ();
return 0;
}

Anda mungkin juga menyukai