- 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