Professional Documents
Culture Documents
Mobill
Mobill
h>
//mengaktifkan fungsi perhitungan matematika
#include <math.h>
/*
GIGIH SETYAJI
UMRI Indonesia
Grafica Computer
void tampil()
{
//perintah menghapus layar
glClear(GL_COLOR_BUFFER_BIT);
//perintah animasi
glPushMatrix();
glTranslatef( gerak, 0,0);
//cup tengah
glColor3f(0.0,1.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(1.0,1.0);
glVertex2f(1.5,0.0);
glVertex2f(1.5,-1.0);
glVertex2f(-1.0,-1.0);
glVertex2f(-1.0,0.0);
glVertex2f(-0.7,1.0);
glEnd();
glFlush();
//cup depan
glColor3f(0.0,1.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(1.5,0.0);
glVertex2f(2.5,0.0);
glVertex2f(2.5,-1.0);
glVertex2f(1.5,-1.0);
glEnd();
glFlush();
//cup belakang
glColor3f(0.0,1.0,1.0);
glBegin(GL_POLYGON);
glVertex2f(-1.0,-1.0);
glVertex2f(-1.5,-1.0);
glVertex2f(-1.5,0.0);
glVertex2f(-1.0,0.0);
glEnd();
glFlush();
//ban depan
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
radius = 40;
jumlah_titik = 60;
x_tengah = 190;
y_tengah = -90;
for (i=0;i<=360;i++)
{
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
//ban belakang
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
radius = 40;
jumlah_titik = 60;
x_tengah = -90;
y_tengah = -90;
for (i=0;i<=360;i++)
{
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+radius*cos(sudut);
float y=y_tengah+radius*sin(sudut);
glVertex2f(x/100,y/100);
}
glEnd();
glFlush();
glPopMatrix();
}
void timer(int t)
{
if (atas){
gerak += 1;
} else {
gerak -= 1;
}
if (gerak > 20) {
atas = false;
} else if(gerak < -20){
atas = true;
}
glutPostRedisplay();
/*
kecepatan mobil berbanding terbalik
semakin besar nilai glutTimerFunc maka akan semakin pelan gerakannya
ubahlah angka 50 agar mengerti
*/
glutTimerFunc(50,timer,0);
}
int main(int argc, char** argv)
{
glutCreateWindow("Mobil Bergerk Auto");
//background warna putih
glClearColor(1.0,9.0,1.0,0.0);
glutDisplayFunc(tampil);
gluOrtho2D(-20., 20., -20.0, 20.0);
glutTimerFunc(1,timer,0);
glutMainLoop();
}