Professional Documents
Culture Documents
Animasi
Animasi
Source Code
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include <math.h>
//deklarasi lingkaran
const double PI = 3.142857143;
int i, radius, jumlah_titik, x_tengah, y_tengah;
void animasi()
{
glClear(GL_COLOR_BUFFER_BIT);
//latar
glBegin(GL_QUADS); //karena menggunakan latar terdiri 4 titik
glColor3ub(0,191,255);
glVertex2d(-20, -20);
glVertex2d(20, -20);
glColor3b(255,255,255);
glVertex2d(20, 20);
glVertex2d(-20, 20);
glEnd();
glFlush(); //tanda objek yang berbeda
//jalan
glBegin(GL_POLYGON);
glColor3f(0.3,0.3,0.3);
glVertex2d(20, -22);
glVertex2d(-20, -22);
glVertex2d(-20, -13);
glVertex2d(20, -13);
glEnd();
glFlush();
//garis jalan
glLineWidth(2);
glBegin(GL_LINES);
glColor3f(1,1,1);
glVertex2d(-18, -16);
glVertex2d(-15, -16);
glVertex2d(-12, -16);
glVertex2d(-9, -16);
glVertex2d(-6, -16);
glVertex2d(-3, -16);
glVertex2d(0, -16);
glVertex2d(3, -16);
glVertex2d(6, -16);
glVertex2d(9, -16);
glVertex2d(12, -16);
glVertex2d(15, -16);
glEnd();
glFlush();
//matahari
glColor3ub(255,255,0);
glBegin(GL_POLYGON);
radius = 40;
jumlah_titik = 60;
x_tengah = 2.5;
y_tengah = 140;
//gunung 1
glBegin(GL_TRIANGLES);
glColor3ub(50,205,50);
glVertex2d(-10, 7);
glVertex2d(0, -4);
glVertex2d(-20, -4);
glEnd();
glFlush();
//gunung 2
glBegin(GL_TRIANGLES);
glColor3ub(50,205,50);
glVertex2d(10, 7);
glVertex2d(0, -4);
glVertex2d(20, -4);
glEnd();
glFlush();
//awan 1
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 18;
jumlah_titik = 60;
x_tengah = -150;
y_tengah = 90;
glEnd();
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 18;
jumlah_titik = 60;
x_tengah = -100;
y_tengah = 95;
glEnd();
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 30;
jumlah_titik = 60;
x_tengah = -125;
y_tengah = 100;
//awan 2
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 18;
jumlah_titik = 60;
x_tengah = 30;
y_tengah = 55;
glEnd();
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 18;
jumlah_titik = 60;
x_tengah = -30;
y_tengah = 55;
glEnd();
glColor3f(1,1,1);
glBegin(GL_POLYGON);
radius = 30;
jumlah_titik = 60;
x_tengah = 0;
y_tengah = 60;