tugas grafika 4

LAPORAN PRAKTIKUM GRAFIKA KOMPUTER

“glTranslated dan glRotated”

UNY.jpg

DISUSUN OLEH :

Nama : Rokhmat Edi Saputro

NIM : 09520244026

Kelas : F4_2

PENDIDIKAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA

2011

I. TUJUAN

1. Memahami fungsi dari glTranslated untuk mentranslasi objek.

2. Memahami fungsi dari glRotated untuk merotasi objek.

II. DASAR TEORI

Model tranformasi dalam openGL ada 3 yaitu :

1. glTranslated

fungsi memindah objek

2. glRotated

fungsi merotasi objek dalam koordinat (x,y,z)

3. glScale

fungsi menyeskalakan objek dalam koordinat (x,y,z)

III. HASIL PRAKTIKUM

LATIHAN 1 :

//.....................................................

#include

#include

void Display ()

{

glColor3f (1,0,1);// warna segiempat asli adalah pink

glRecti(300,50,500,200);// fungsi translasi openGL

//glPlushMatrix();

//..................................................

//glTranslated (250,50,0);//fungsi Translasi OpenGL

//..................................................

glColor3f (1,1,0); //warna segiempat hasil translasi adalah KUNING

glPushMatrix();

/*glTranslated (250,50,0); //fungsi Translasi openGL

glRecti (300,50,500,200); */

glScaled (2,3,1);

glRecti(50,50,100,100);// fungsi translasi openGL

glRotated(45,0,0,1);

glPopMatrix();

glFlush();

}

void reshape (int w, int h)

{

glViewport(0,0,(GLsizei)w, (GLsizei)h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,800.0,0.0,600.0);

//GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble 10, GLdouble 5, GLdouble 5 );

}

void init ()

{

glClearColor (1.0,0.0,0.0,1.0);

glPointSize (5.0);

}

main (int argc,char**argv)

{

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

glutInitWindowSize(800,600);

glutCreateWindow ("contoh program grafika komputer");

init();

glutDisplayFunc(Display);

glutReshapeFunc(reshape);

glutMainLoop();

}

//.......................................................

Hasil :

LATIHAN 2 :

//.....................................................

#include

#include

void Display ()

{

glColor3f (1,0,1);// warna segiempat asli adalah pink

glRecti(300,50,500,200);// fungsi translasi openGL

//glPlushMatrix();

//..................................................

//glTranslated (250,50,0);//fungsi Translasi OpenGL

//..................................................

glColor3f (1,1,0); //warna segiempat hasil translasi adalah KUNING

glPushMatrix();

/*glTranslated (250,50,0); //fungsi Translasi openGL

glRecti (300,50,500,200); */

glScaled (2,3,1);

glRecti(50,50,100,100);// fungsi translasi openGL

glRotated(45,0,0,1);

glPopMatrix();

glFlush();

}

void reshape (int w, int h)

{

glViewport(0,0,(GLsizei)w, (GLsizei)h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,800.0,0.0,600.0);

//GLAPI void APIENTRY glRotated( GLdouble angle, GLdouble 10, GLdouble 5, GLdouble 5 );

}

void init ()

{

glClearColor (1.0,0.0,0.0,1.0);

glPointSize (5.0);

}

main (int argc,char**argv)

{

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

glutInitWindowSize(800,600);

glutCreateWindow ("contoh program grafika komputer");

init();

glutDisplayFunc(Display);

glutReshapeFunc(reshape);

glutMainLoop();

}

//.......................................................

Hasilnya :

IV. TUGAS

1. Apa yang terjadi pada contoh translasi ditraslasikan dengan Px : -50 dan

Py : 40. Apa perubahan yang terjadi??

2. Apa yang terjadi pada contoh skala dskalakan dengan Px : 2 dan

Py : 2. Apa perubahan yang terjadi??

3. Didalam transformasi gabungan mengapa urutan transformasi sangat diperhatikan?

JAWABAN TUGAS :

1. PROGRAM :

//.....................................................

#include

#include

void Display ()

{

glColor3f (1,0,1);// warna segiempat asli adalah pink

glRecti(300,50,500,200);// fungsi translasi openGL

//glPlushMatrix();

//..................................................

//glTranslated (250,50,0);//fungsi Translasi OpenGL

//..................................................

glColor3f (1,0,0); //warna segiempat hasil translasi adalah MERAH

glPushMatrix();

glTranslated (-50,40,0); //fungsi Translasi openGL PX:-50,PY:40

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

glColor3f (0,1,0); //warna segiempat hasil translasi adalah HIJAU

glPushMatrix();

//glTranslated (250,50,0); //fungsi Translasi openGL

glRotated (45,0,0,1);

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

glColor3f (5,9,3); //warna segiempat hasil translasi adalah KUNING

glPushMatrix();

//glTranslated (250,50,0); //fungsi Translasi openGL

//glRotated (45,0,0,1);

glScaled (2,4,5);

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

}

void reshape (int w, int h)

{

glViewport(0,0,(GLsizei)w, (GLsizei)h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,800.0,0.0,600.0);

}

void init ()

{

glClearColor (1.0,0.0,0.0,1.0);

glPointSize (5.0);

}

main (int argc,char**argv)

{

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

glutInitWindowSize(800,600);

glutCreateWindow ("contoh program grafika komputer");

init();

glutDisplayFunc(Display);

glutReshapeFunc(reshape);

glutMainLoop();

}

//.......................................................

HASILNYA :

**yang ditranslasikan px : -50 dan py : 40 adalah kotak warna merah.perubahan yang terjadi kotak merah mengalami pergeseran yang awalnya berada dibawah kotak putih

2. Program :

//.....................................................

#include

#include

void Display ()

{

glColor3f (1,0,1);// warna segiempat asli adalah pink

glRecti(300,50,500,200);// fungsi translasi openGL

//glPlushMatrix();

//..................................................

//glTranslated (250,50,0);//fungsi Translasi OpenGL

//..................................................

glColor3f (1,0,0); //warna segiempat hasil translasi adalah MERAH

glPushMatrix();

glTranslated (-50,40,0); //fungsi Translasi openGL PX:-50,PY:40

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

glColor3f (0,1,0); //warna segiempat hasil translasi adalah HIJAU

glPushMatrix();

//glTranslated (250,50,0); //fungsi Translasi openGL

glRotated (45,0,0,1);

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

glColor3f (5,9,3); //warna segiempat hasil translasi adalah KUNING

glPushMatrix();

//glTranslated (250,50,0); //fungsi Translasi openGL

//glRotated (45,0,0,1);

glScaled (2,2,0);//MERUBAH SKALA MENJADI PX=2 PY=2

glRecti (300,50,500,200);

glPopMatrix();

glFlush();

}

void reshape (int w, int h)

{

glViewport(0,0,(GLsizei)w, (GLsizei)h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

gluOrtho2D(0.0,800.0,0.0,600.0);

}

void init ()

{

glClearColor (1.0,0.0,0.0,1.0);

glPointSize (5.0);

}

main (int argc,char**argv)

{

glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);

glutInitWindowSize(800,600);

glutCreateWindow ("TUGAS NO 2 grafika komputer");

init();

glutDisplayFunc(Display);

glutReshapeFunc(reshape);

glutMainLoop();

}

//.......................................................

HASILNYA :

**Terjadi perubahan ukuran pada kotak putih yang sudah diskalakan menjadi py : 2 , px : 2.

3. Karena, dalam tranformasi perubahan model transformasi seperti rotated,translasi, dan scale akan merubah objek mana dulu yang diberi model transformasi paling awal baru kemudian yang lain bisa berubah sesuai dengan model transformasi yang digunakan sesudahnya dan apabila salah penaruhan antara glRotated,glScale dan glTranslated salah pengurutannya maka objek akan berubah tidak sesuai dengan yang kita inginkan (terbalik-balik antar objek 1 dengan yang lain).

Comments