BLOGGER TEMPLATES - TWITTER BACKGROUNDS »

Senin, 06 Desember 2010

Membuat Belah ketupat 3D

Gambar ini dibuat dengan menggunakan program aplikasi Pelles C

Sebelum memulai Coding , Perhatikan hal-hal berikut :

NB : Tambahkan tanda < > pada tulisan windows.h , GL/gl.h , GL/glu.h , GL/glfw.h pada #include

Tulisan warna Merah adalah Listing Penggambaran Bangun

Tulisan warna Biru adalah Listing agar Bangun dapat berputar

LISTING / CODING


#include windows.h

#include GL/gl.h

#include GL/glu.h

#include GL/glfw.h

void mulaiOpenGL(void);

int main(void)

{

//

// 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( "TES GAMBAR" );

glfwSwapInterval( 1 );

//

// mulai OpenGL (melakukan setting awal OpenGL)

mulaiOpenGL();

float x1= 2;

float x2= -2;

float y1= 2;

float y2= -2;

float z1= 2;

float z2= -2;

float x3= 0;

float y3= 4;

float y4= -4;

float sudut=0;

// 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,20,0,0,0,0,1,0);

glRotatef(sudut,0,1,0);


glBegin(GL_TRIANGLES);

glColor3f(1,0,0);

glVertex3f(0,4,0);

glVertex3f(-3,0,-3);

glVertex3f(3,0,-3);

glEnd();


glBegin(GL_TRIANGLES);

glColor3f(1,0,0);

glVertex3f(0,4,0);

glVertex3f(-3,0,3);

glVertex3f(3,0,3);

glEnd();

glBegin(GL_TRIANGLES);

glColor3f(1,1,1);

glVertex3f(0,4,0);

glVertex3f(-3,0,3);

glVertex3f(-3,0,-3);

glEnd();


glBegin(GL_TRIANGLES);

glColor3f(1,1,1);

glVertex3f(0,4,0);

glVertex3f(3,0,-3);

glVertex3f(3,0,3);

glEnd();

//S3 2

glBegin(GL_TRIANGLES);

glColor3f(1,1,1);

glVertex3f(0,-4,0);

glVertex3f(3,0,-3);

glVertex3f(-3,0,-3);

glEnd();


glBegin(GL_TRIANGLES);

glColor3f(1,1,1);

glVertex3f(0,-4,0);

glVertex3f(3,0,3);

glVertex3f(-3,0,3);

glEnd();


glBegin(GL_TRIANGLES);

glColor3f(1,0,0);

glVertex3f(0,-4,0);

glVertex3f(3,0,3);

glVertex3f(-3,0,-3);

glEnd();


glBegin(GL_TRIANGLES);

glColor3f(1,0,0);

glVertex3f(0,-4,0);

glVertex3f(3,0,-3);

glVertex3f(-3,0,3);

glEnd();

sudut +=0.15;

//------------------------------------------------------------------------------------

//

// 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( 0.0f, 0.0f, 0.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 );

}


NB : Tulisan warna Merah adalah Listing Penggambaran Bangun

Tulisan warna Biru adalah Listing agar Bangun dapat berputar


OUTPUT


1 komentar:

  1. itu program peles C mksdnya gmn ya om..?
    trus itu C atau C++...???

    BalasHapus

Powered By Blogger