Grafika Komputer, Membuat dan menggerakkan objek bintang


Berikut ini akan dibahas bagaimana membuat dan menggerakkan objek bintang. Bagi saudara/i yang ingin mencoba atau belajar bahkan untuk menyelesaikan tugas sekolah maupun kuliahnya, dilihat dulu gambar dibawah ini

3

Untuk membuat objek diatas, berikut ini scriptnya

//Tekan tombol B untuk menggerakkannya
//Modified by : eko pramono
#include <GL/glut.h>
#include <windows.h>

GLfloat  xangle=0.0, yangle=0.0; //Variabel (Bayangan untuk sumbu X & Y)
GLint window; //Fungsi window

void init (void) { //Fungsi utama untuk tampilan
glClearColor (1.0, 1.0, 1.0, 0.0); //Fungsi membuat warna background berwarna putih
glLineWidth(1.0); //Fungsi membuat ketebalan garis
glColor3f (1.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION); //Fungsi mode proyeksi
glLoadIdentity (); //Definisi objek
glOrtho(-6,6,-6,6,-6,6); //Fungsi untuk menampilkan koordinat view (sumbu X & Y)
}
void Display (void){ //Fungsi utama untuk tampilan
glClear (GL_COLOR_BUFFER_BIT); //Membersihkan semua pixel di buffer(clear all pixels)
glPushMatrix(); //Fungsi untuk menyimpan nilai matrix

glBegin (GL_LINES); //Fungsi menggambar sumbu X
glVertex2f (-5.5,0.0); //Sumbu X negatif
glColor3f(1.0, 0.0, 0.0); //Merah
glVertex2f (5.5,0.0); //Sumbu X positif
glEnd (); //Fungsi akhir perintah opengl

glBegin (GL_LINES);    //Fungsi menggambar sumbu Y
glVertex2f (0.0,-5.5); //Sumbu Y negatif
glColor3f(1.0, 0.0, 0.0); //Merah
glVertex2f (0.0, 5.5); //Sumbu Y positif
glEnd (); //Fungsi akhir perintah opengl

glRotatef(xangle, 0.0, 0.0, 1.0);
glBegin (GL_POLYGON);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (-0.5, -0.5); //Titik A (1,1)
glColor3f(1.0, 0.0, 1.0);
glVertex2f (0.0, -5.0); //Titik B (4,1)
glColor3f(0.0, 1.0, 0.0);
glVertex2f (0.5, -0.5); //Titik C (1,5)
glColor3f(0.0, 1.0, 9.0);
glVertex2f (5.0, 0.0);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (0.5, 0.5);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (0.0, 5.0);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (-0.5, 0.5);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (-5.0, 0.0);
glEnd ();

glPopMatrix(); //kembali ke koordinat sebelum dipush
glutSwapBuffers(); //Fungsi perpindahan
glFlush ();
}

void KeyboardAssign (GLubyte key, GLint x, GLint y) {
switch (key) {
case ‘b’:
xangle +=70.0;
glColor3f (0.0, 0.0, 1.0);
glutPostRedisplay();
break;
}
}

/*
* Deklarasi window size, position, dan display mode(single buffer and RGBA).
* Pemanggilan routin inisialisasi.
* Memanggil fungsi untuk manampilkan objek di layar
*/
void main (int argc, char** argv){ //Pemanggilan fungsi utama
glutInit (&argc, argv); //Pemanggilan fungsi utama OpenGL
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); //Fungsi warna jenis tampilan
glutInitWindowPosition (0, 0); //Menetapkan posisi window
glutInitWindowSize(1500, 1500); //Menetapkan ukuran windows
glutCreateWindow(“Latihan Menggerakkan Objek”); //Membuat window dan menentukan judulnya
init();
glutDisplayFunc(Display); //Memanggil fungsi untuk menampilkan objek
glutKeyboardFunc(KeyboardAssign); //Melakukan fungsi terhadap keyboard
glutMainLoop(); //Terus tampilkan hingga program diakhiri
}

Semoga bermanfaat 🙂

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s