Anda di halaman 1dari 5

GRAFIKA KOMPUTER PRAKTIKUM I

Install OpenGL 1. Copy glut32.dll Local disc C: Windows System 32 Paste 2. Copy glut.lib Local disc C: program files Microsoft Visual Studio VC 98 lib Paste 3. Copy glut.h Local disc C: program files Microsoft Visual Studio VC 98 include GL Paste Praktikum 1. Buatlah project baru, dan beri nama project : Nama_anda 2. Simpan ke dalam directory C: (atau sesuai perintah asisten) 3. Buatlah file baru, dan berikan nama pada file tersebut : Trans.cpp 4. Buatlah window baru #include <GL/glut.h> void init (void) { glClearColor (1.0,1.0,1.0,1.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-1.0,1.0,-1.0,1.0); } void display (void) { glClearColor (1.0,1.0,1.0,1.0); glFlush(); glutSwapBuffers(); } void main (int argc, char **argv) { glutInit (&argc, argv); //initialize the program. glutInitDisplayMode (GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); //set up a basic display buffer (only singular for now) glutInitWindowPosition (100, 100); //set the position of the window glutInitWindowSize (600, 600); //set whe width and height of the window

glutCreateWindow ("Membuat Window"); //set the caption for the window init(); glutDisplayFunc (display); //call the display function to draw our world glutMainLoop (); //initialize the OpenGL loop cycle } 5. Build dan compile program anda. Jika tidak error, maka akan terlihat tampilan sebuah window 6. Setelah itu lanjutkan dengan membuat titik-titik untuk membentuk sebuah garis : Inisialisasi nilai dua titik (x0,y0) dan (x1,y1) pada koordinat double x0=-0.3; double y0=-0.3; double x1=-0.3; double y1=0.3; Buat fungsi baru bernama myLines() yang berisi nilai-nilai titik yang telah diinisialisasi sebelumnya void myLines() { glBegin(GL_LINES); glVertex2f(x0,y0); glVertex2f(x1,y1); glEnd(); } Panggil fungsi myLines() dari fungsi display(void) void display (void) { glClearColor (1.0,1.0,1.0,1.0); glFlush(); myLines(); glutSwapBuffers(); } Ubah display mode dari single menjadi double void main (int argc, char **argv) { glutInit (&argc, argv); //initialize the program. glutInitDisplayMode (GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (100, 100); //set the position of the window glutInitWindowSize (600, 600); //set whe width and height of the window glutCreateWindow ("Membuat Window"); //set the caption for the window

init(); glutDisplayFunc (display); //call the display function to draw our world glutMainLoop (); //initialize the OpenGL loop cycle } 7. Build dan compile program anda. Jika tidak ada error, maka akan terlihat sebuah garis pada window 8. Selanjutnya buatlah bangun 2 dimensi Tambahkan titik-titik pada inisialisasi (x2,y2),(x3,y3), dst sesuai dengan bangun yang anda inginkan dan jumlah titik yang di perlukan double x2=0.3; double y2=0.3; double x3=0.3; double y3=-0.3; Panggil kembali titik-titik yang telah diinisialisasi, dan ubah glBegin(GL_LINES) dengan glBegin(GL_POLYGON) untuk membentuk sebuah polygon void myLines() { //glBegin(GL_LINES); glBegin(GL_POLYGON); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); } Berikan warna pada objek. Letakkan coding berikut glColor3f(R,G,B) dimana nilai R,G,B di input dari 0.0 sampai 1.0

void myLines() { //glBegin(GL_LINES); glBegin(GL_POLYGON); glColor3f( 1.0, 0.0, 0.0 ); glVertex2f(x0,y0); glVertex2f(x1,y1); glVertex2f(x2,y2); glVertex2f(x3,y3); glEnd(); } 9. Build dan compile program anda. Jika tidak ada error, maka akan terbentuk sebuah bangun 2 dimensi pada sebuah window.

! LATIHAN 1 : buat bangun menjadi warna ungu

10.Kemudian buatlah fungsi transformasi pada display(): Fungsi translasi : glTranslatef(x,y,z); Nilai x,y,z yang di input akan menggeser posisi awal (0, 0, 0) ke arah (x, y, z) Fungsi skalasi : glTranslatef(x,y,z); Nilai x,y,z untuk scale defaultnya adalah (1.0, 1.0, 1.0); Nilai input akan memperbesar jika x,y,z > 1.0 dan mengecil jika x,y,z<1. Fungsi rotasi : glRotatef(angle, x, y, z); Jika rotasi terhadap sumbu z : glRotatef(angle, 1.0, 0.0, 0.0); Jika rotasi terhadap sumbu y : glRotatef(angle, 0.0, 1.0, 0.0); Jika rotasi terhadap sumbu x : glRotatef(angle, 0.0, 0.0, 1.0); Fungsi shear : dengan menggunakan fungsi translasi terhadap satu atau beberapa titik. Fungsi refleksi : dengan membuat sebuah garis titik / objek baru pada arah yang berlawanan

11.Lakukan perintah berikut :

! LATIHAN 2 :
Buat translasi kearah sumbu x sebanyak 3 titik. Lalu build dan compile Buat skalasi 2x terhadap sumbu y. Lalu build dan compile Buat rotasi kearah sumbu x sebesar 45derajat. Lalu build dan compile 12.Membentuk fungsi mouse : void mouse (int btn, int state, int x, int y) { //klik kiri if(btn==GLUT_LEFT_BUTTON && state==GLUT_DOWN) .... isi perintah yang dijalankan; //klik kanan if(btn==GLUT_RIGHT_BUTTON && state==GLUT_DOWN) .... isi perintah yang dijalankan; //klik tengah if(btn==GLUT_MIDDLE_BUTTON && state==GLUT_DOWN) .... isi perintah

yang dijalankan; glutPostRedisplay(); } 13.Mengaktifkan fungsi mouse void main (int argc, char **argv) { glutInit (&argc, argv); //initialize the program. glutInitDisplayMode (GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (100, 100); //set the position of the window glutInitWindowSize (600, 600); //set whe width and height of the window glutCreateWindow ("Membuat Window"); //set the caption for the window glutMouseFunc(mouse); init(); glutDisplayFunc (display); //call the display function to draw our world glutMainLoop (); //initialize the OpenGL loop cycle } TUGAS PRAKTIKUM 1. Buat objek berbentuk segienam dan beri warna orange 2. Lakukan skalasi pada seluruh sisi objek sebanyak 0.8x untuk setiap klai penekanan mouse klik tengah 3. Lakukan translasi pada sumbu x sebanyak 1.5x setiap kali penekanan mouse klik kanan Kumpulkan dalam bentuk CD berisi source code kepada asiste lab yang bersangkutan paling lambat tanggal 28 oktober 2009 pukul 12 siang. Nama project : Nama_anda Nama File : prak1.cpp

Anda mungkin juga menyukai