my campus

my campus
gunadarma

time is money

Membuat Bentuk Bintang yang Berputar dengan Pelles C

Posted by: yoedha / Category:

Membuat Bentuk Bintang yang Berputar dengan Pelles C..

Desain pemodelan grafik adalah suatu bentuk desain yang sangat dibutuhkan untuk pembuatan suatu bangunan dalam bentuk simulasi. Dengan ini sebelum membuat suatu project, kita bisa membuat simulasinya terlebih dahulu atau merancangnya sedemikian rupa. Desain pemodelan grafik ini juga sangat erat kaitannya dengan grafik komputer.

Pembuatnnya diawali dengan pemodelan geometris dengan menciptakan model matematika dari objek 2D atau 3D. Setelah dimodelkan kita bisa membuat objek yang lebih bagus dari model yang dibentuk, dan setelah itu mulai dengan animasinya agar objek yang dibuat lebih terlihat hidup.

Salah satu contoh sedrhana adalah pembuatan bentuk bintang yang berputar dengan menggunakan Pellse C. Langkah-langkah pembuatannya tidak terlepas dari langkah-langkah yang disebutkan tadi.

Yang pertama dilakukan adalah membuka aplikasi pelles c dengan coding seperti dibawah ini :

#include
#include
#include
#include
void mulaiOpenGL(void);
int main(void)
{
float sudut=0;
float x=0;
//
// mRunning = TRUE, aplikasi masih berjalan
// mRunning = FALSE, ??? :p
GLuint mRunning = GL_TRUE;
//
// inisialisasi GLFW
if( glfwInit() == GL_FALSE )
{
MessageBox( NULL, "ERROR :: gagal menginisialisasi GLFW", "Error!", MB_OK);
return(0);
}
//
// buat sebuah window yang akan digunakan untuk menggambar.
if( glfwOpenWindow( 640, 480, 0, 0, 0, 0, 24, 0, GLFW_WINDOW ) == GL_FALSE )
{
MessageBox( NULL, "ERROR :: gagal membuat window", "Error!", MB_OK );
glfwTerminate();
return(0);
}
//
// Set judul yang ada di window dan Swap interval.
glfwSetWindowTitle( "Praktikum Grafik Komputer LabTI" );
glfwSwapInterval( 1 );
//
// mulai OpenGL (melakukan setting awal OpenGL)
mulaiOpenGL();
//
// mulai looping utama program
while( mRunning )
{
//
// bersihkan layar dan depth buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
//
// lakukan penggambaran di sini
//------------------------------------------------------------------------------------
gluLookAt(0,0,30,0,0,0,0,1,0);
glTranslatef( x,0,0);
glRotatef(sudut,0,0,1);
sudut += 3;
x +=0.1f;
if (x>10) x=-10;
glBegin(GL_TRIANGLES);

glColor3f(1,0,0);
glVertex3f(0,4,0); // depan kubus
glVertex3f(-3,0,0);
glVertex3f(3,0,0);

glVertex3f(-7,-1.5,0); // depan kubus
glVertex3f(-3,0,0);
glVertex3f(-3,-3,0);

glVertex3f(0,-7,0); // depan kubus
glVertex3f(3,-3,0);
glVertex3f(-3,-3,0);

glVertex3f(7,-1.5,0); // depan kubus
glVertex3f(3,0,0);
glVertex3f(3,-3,0);


glEnd();
glBegin(GL_QUADS);
glColor3f(1,0,0); // depan kubus
glVertex3f(-3,0,0);
glVertex3f(3,0,0); // depan kubus
glVertex3f(3,-3,0);
glVertex3f(-3,-3,0);


glEnd();


//------------------------------------------------------------------------------------
//
// tampilkan ke layar (swap double buffer)
glfwSwapBuffers();

//
// check input , apakah tombol esc ditekan atau tombol "close" diclick
mRunning = !glfwGetKey( GLFW_KEY_ESC ) && glfwGetWindowParam( GLFW_OPENED );
}

glfwTerminate();
return(0);
}

void mulaiOpenGL(void)
{
//
// Set viewport ke resolusi 640x480 viewport bisa diibaratkan
// layar monitor anda
glViewport( 0, 0, 640, 480 );
//
// Set mode OpenGL ke mode pryeksi (Projection) dan set proyeksi
// menggunakan proyeksi perspective, dengan sudut pandang (Field Of
// View) 60 derajat
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 60.0f, 640.0f/480.0f, 0.1f, 1000.0f );

glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
//
// Set mode gradasi warna halus (Smooth)
glShadeModel( GL_SMOOTH );
//
// warna yang digunakan untuk membersihkan layar
glClearColor( 1.0f, 1.0f, 1.0f, 0.0f );
//
// nilai untuk membersihkan depth buffer.
glClearDepth( 1.0f );
//
// Depth test digunakan untuk menghindari polygon yang
// tumpang tindih.
glEnable( GL_DEPTH_TEST );
glDepthFunc( GL_LEQUAL );
//
// beritahu OpenGL untuk menggunakan perhitungan perspective
// yang terbaik (perhitungan ini tidak bisa selalu 100% akurat)
glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
}


Setelah mengetikkan coding seperti diatas, maka outputnya adalah sebagai berikut :




Jika dijalankan di aplikasi Pelles C, maka objek yang berbentuk bintang diatas terlihat berputar-putar.

sumber : ilmugrafis.com


0 komentar:

Posting Komentar