tugas grafika 4
“glTranslated dan glRotated”
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
Post a Comment