Tugas Asistensi 2 Source Code Tugas Asistensi 3 Source Code

- Pada program diatas menggunakan fungsi GL_QUADS untuk membangun objek segi empat. Saya menggunakan 2 fungsi drawQuads, yang akan membangun 2 buah objek dengan warna berbeda. Menggunakan fungsi Translatef juga untuk posisi objek yang beragam. Menggunakan Rotatef untuk mengubah posisi objek. Menggunakan glColor3f untuk pewarnaan objek.

2. Tugas Asistensi 2 Source Code

include stdlib.h include glut.h int x,y; void guide { glBegin GL_QUADS; glVertex2i-1, 250; a glVertex2i1, 250; b glVertex2i1, -250; c glVertex2i-1, -250; d glVertex2i250, -1; a glVertex2i250, 1; b glVertex2i-250, 1; c glVertex2i-250, -1; d glEnd; } void kotak { glBegin GL_QUADS; glVertex2i-20, 240; a glVertex2i20, 240; b glVertex2i20, 200; c glVertex2i-20, 200; d glEnd; } void timer int value { if x200 { x += 10; glTranslatef 10,- 10,0; } else if x 400 { x += 10; glTranslatef -10,- 10,0; } else if x 600 { x += 10; glTranslatef - 10,10,0; } else if x 800 { x += 10; glTranslatef 10,10,0; } else if x = 790 { x=0; } glutPostRedisplay; glutTimerFunc500,timer,0; } void render { glClearGL_COLOR_BUFFER_BI T; glPushMatrix; guide; glTranslatef10,-10,0; kotak; glPopMatrix; glFlush; } void main int argc, char argv { glutInitargc, argv; glutInitDisplayModeGLUT_DE PTH | GLUT_SINGLE | GLUT_RGBA; glutInitWindowPosition150, 150; glutInitWindowSize640, 480; glutCreateWindow ASISTENSI 2 ; gluOrtho2D-640.,640.,- 320.,320.; glutDisplayFuncrender; glutTimerFunc500,timer,0; glutMainLoop; } Hasil Penjelasan : - Program diatas menggunakan fungsi GL_QUADS untuk membentuk guide arah objek bergerak. Menggunakan fungsi kotak untuk membentuk objeknya. Menggunakan fungsi timer dengan perkondisian jika nilai x kurang dari 200 maka x ditambah 10, hal ini yang mengakibatkan trerjadinya pergerakan objek. Menggunakan fungsi Translatef juga. Kemudian perkondisian selanjutnya dideklarasikan jika x kurang dari 400 maka x ditambah 10 dengan menerapkan fungsi glTranslatef -10,10,0. Kondisi selanjutnya jika kurang dari 600 maka sama menggunakan fungsi glTranslatef pada kondisi x400. Untuk kondisi selanjutnya juga sama pendeklarasiannya, hingga jika nilai x = 790 maka x=0. Menggunakan timer 500 untuk kecepatan geraknya.

3. Tugas Asistensi 3 Source Code

include stdlib.h include glut.h include math.h define PI 3.1415926535 float sudut = 0; int i,n; void lingkaran int radius, int jumlah_titik, int xtengah, int ytengah { glBeginGL_POLYGON; for i=0;i=360;i++ { float sudut=i2PIjumlah_titik; float x=xtengah+radiuscossudut; float y=ytengah+radiussinsudut; glVertex2fx,y; glColor3f0., 1., 1.; } glEnd; } Jarum kecil void kecil { glBeginGL_QUADS; glColor3f1.,1.,0.; kuning glVertex2f5.,125.; glVertex2f5.,0.; glVertex2f-5.,0.; glVertex2f-5.,125.; glEnd; } Jarum panjang void panjang { glBeginGL_QUADS; glColor3f1.,1.,1.; putih glVertex2f5.,175.; glVertex2f5.,0.; glVertex2f-5.,0.; glVertex2f-5.,175.; glEnd; } void detik { glBeginGL_QUADS; glColor3f0.,1.,0.; glVertex2f5.,200.; glVertex2f5.,0.; glVertex2f-5.,0.; glVertex2f-5.,200.; glEnd; } titik jam void angka float jarak, float x, float y { glPointSize10; glBeginGL_POINTS; glColor3f0.,0.,0.; for n=0;n360;n+=90 glVertex2fjarak float sinnPI180. 0+x,jarak float cosnPI180.0+y ; glEnd; } titik menit void menit float jarak, float x, float y { glPointSize4; glBeginGL_POINTS; glColor3f0.,0.,0.; for n=0;n360;n+=6 glVertex2fjarak float sinnPI180. 0+x,jarak float cosnPI180.0+y ; glEnd; } void renderScene void { glClearGL_COLOR_BUFFER_BIT; warna lingkaran glPushMatrix; glColor3f1.,0.,0.; lingkaran260,100,0,0; angka230.,0.,0.; menit230.,0.,0.; glPopMatrix; panah detik glPushMatrix; glRotatefsudut,0,0,1; detik; glPopMatrix; panah menit glPushMatrix; glRotatefsudut60,0,0,1; panjang; glPopMatrix; panah jam glPushMatrix; glRotatefsudut720,0,0,1; kecil; glPopMatrix; glColor3f0,0,0; lingkaran10,50,0,1; glFlush; } void timer int value { sudut-=6; glutPostRedisplay; glutTimerFunc1000,timer,0; } void main int argc, char argv { glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA; glutInitWindowPosition150, 150; glutInitWindowSize640, 480; glutCreateWindow ASISTENSI 3 ; gluOrtho2D-640.,640.,- 320.,320.; glutDisplayFuncrenderScene; glutTimerFunc1,timer,0; glutMainLoop; } Hasil Penjelasan - Pada program diatas menngunakan fungsi matematika untuk perhitungan arah jam. Terdapat banyak fungsi yang menggambarkan objek-objek yang akan dibentuk untuk menyusun jam analog ini. Menggunakan perulangan for untuk membuat jam bergerakberputar secara nyata. Pendeklarasian pembentukan panah jam dari jam menit, detik dengan warna berbeda dan panjang yang berbeda. Menggunakan fungsi timer untuk pergerakan panah. Mendeklarasikan titik titik yang digunakan sebagai titik menit dari jam analog.

4. Tugas Asistensi 4 Source Code