#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( "Praktikum Grafik Komputer LabTI" );
glfwSwapInterval( 1 );
//
// mulai OpenGL (melakukan setting awal OpenGL)
mulaiOpenGL();
//
// mulai looping utama program
float x1=0, x2=5, y1=0, y2=5 , z1=0, z2=5;
while( mRunning )
{
//
// bersihkan layar dan depth buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
//
// lakukan penggambaran di sini
//------------------------------------------------------------------------------------
/*gluLookAt(25,30,35,0,0,0,0,1,0);
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,10,0);
glVertex3f(5,15,0);
glVertex3f(10,10,0);
glEnd();
glBegin(GL_QUADS);
glColor3f(255,0,255);
glVertex3f(0,0,0);
glVertex2f(0,10);
glVertex2f(10,10);
glVertex2f(10,0);
//DEPAN
*/
gluLookAt(50,30,40,0,0,0,0,1,0);
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-10,y1,-10);
glVertex3f(-10,y1,10);
glVertex3f(10,y1,10);
glVertex3f(10,y1,-10);
glEnd();
//ATAP belakang
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,0);
glVertex3f(5,5,0);
glVertex3f(2.5,10,0);
glEnd();
//ATAP depan
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,5);
glVertex3f(5,5,5);
glVertex3f(2.5,10,5);
glEnd();
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//Pintu
glBegin(GL_QUADS);
glColor3f(0,0,100);
glVertex3f(x1,y1,z2);
glVertex3f(x1,2.5,z2);
glVertex3f(2.5,2.5,z2);
glVertex3f(2.5,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//ATAP KIRI
glBegin(GL_QUADS);
glColor3f(150,0,10);
glVertex3f(x2,y2,z1);
glVertex3f(2.5,10,z1);
glVertex3f(2.5,10,z2);
glVertex3f(x2,y2,z2);
glEnd();
glTranslatef(0,0,25);
glScalef(1,1,1);
glRotatef(0,0,0,0);
glBegin(GL_QUADS);
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-10,y1,-10);
glVertex3f(-10,y1,10);
glVertex3f(10,y1,10);
glVertex3f(10,y1,-10);
glEnd();
//ATAP belakang
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,0);
glVertex3f(5,5,0);
glVertex3f(2.5,10,0);
glEnd();
//ATAP depan
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,5);
glVertex3f(5,5,5);
glVertex3f(2.5,10,5);
glEnd();
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//Pintu
glBegin(GL_QUADS);
glColor3f(0,0,100);
glVertex3f(x1,y1,z2);
glVertex3f(x1,2.5,z2);
glVertex3f(2.5,2.5,z2);
glVertex3f(2.5,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//ATAP KIRI
glBegin(GL_QUADS);
glColor3f(150,0,10);
glVertex3f(x2,y2,z1);
glVertex3f(2.5,10,z1);
glVertex3f(2.5,10,z2);
glVertex3f(x2,y2,z2);
glEnd();
glTranslatef(25,0,0);
glScalef(1,2,1);
glRotatef(0,0,0,0);
glBegin(GL_QUADS);
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-10,y1,-10);
glVertex3f(-10,y1,10);
glVertex3f(10,y1,10);
glVertex3f(10,y1,-10);
glEnd();
//ATAP belakang
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,0);
glVertex3f(5,5,0);
glVertex3f(2.5,10,0);
glEnd();
//ATAP depan
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,5);
glVertex3f(5,5,5);
glVertex3f(2.5,10,5);
glEnd();
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//Pintu
glBegin(GL_QUADS);
glColor3f(0,0,100);
glVertex3f(x1,y1,z2);
glVertex3f(x1,2.5,z2);
glVertex3f(2.5,2.5,z2);
glVertex3f(2.5,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//ATAP KIRI
glBegin(GL_QUADS);
glColor3f(150,0,10);
glVertex3f(x2,y2,z1);
glVertex3f(2.5,10,z1);
glVertex3f(2.5,10,z2);
glVertex3f(x2,y2,z2);
glEnd();
glTranslatef(0,0,-25);
glScalef(1,1,1);
glRotatef(0,0,0,0);
glBegin(GL_QUADS);
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-10,y1,-10);
glVertex3f(-10,y1,10);
glVertex3f(10,y1,10);
glVertex3f(10,y1,-10);
glEnd();
//ATAP belakang
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,0);
glVertex3f(5,5,0);
glVertex3f(2.5,10,0);
glEnd();
//ATAP depan
glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,5,5);
glVertex3f(5,5,5);
glVertex3f(2.5,10,5);
glEnd();
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//Pintu
glBegin(GL_QUADS);
glColor3f(0,0,100);
glVertex3f(x1,y1,z2);
glVertex3f(x1,2.5,z2);
glVertex3f(2.5,2.5,z2);
glVertex3f(2.5,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//ATAP KIRI
glBegin(GL_QUADS);
glColor3f(150,0,10);
glVertex3f(x2,y2,z1);
glVertex3f(2.5,10,z1);
glVertex3f(2.5,10,z2);
glVertex3f(x2,y2,z2);
glEnd();
/*glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
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( 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 );
}
Sabtu, 19 November 2011
Membuat Polygon Pada Pelles C
#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( "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 (20,20,35,0,0,0,0,1,0);
glRotatef(1,0,1,0);
glBegin (GL_POLYGON);
//depan
glColor3ub (255,0,255);
glVertex3f (-5,0,0);
glVertex3f (0,0,0);
glVertex3f (2,3,0);
glColor3ub (0,0,0);
glVertex3f (0,6,0);
glVertex3f (-5,6,0);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_POLYGON);
//belakang
glColor3ub (255,0,255);
glVertex3f (-5,0,-4);
glVertex3f (0,0,-4);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (-5,6,-4);
glVertex3f (-7,3,-4);
glEnd();
glBegin (GL_QUADS);
//kanan bawah
glColor3ub (223,105,200);
glVertex3f (0,0,0);
glVertex3f (0,0,-4);
glColor3ub (0,0,0);
glVertex3f (2,3,-4);
glVertex3f (2,3,0);
glEnd();
glBegin (GL_QUADS);
//kanan atas
glColor3ub (0,105,200);
glVertex3f (2,3,0);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (0,6,0);
glEnd();
glBegin (GL_QUADS);
//atas
glColor3ub (200,255,0);
glVertex3f (0,6,0);
glVertex3f (0,6,-4);
glColor3ub (0,0,0);
glVertex3f (-5,6,-4);
glVertex3f (-5,6,0);
glEnd();
glBegin (GL_QUADS);
//kiri atas
glColor3ub (109,105,200);
glVertex3f (-5,6,0);
glVertex3f (-5,6,-4);
glColor3ub (0,0,0);
glVertex3f (-7,3,-4);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_QUADS);
//kiri bawah
glColor3ub (223,105,200);
glVertex3f (-7,3,0);
glVertex3f (-7,3,-4);
glColor3ub (0,0,0);
glVertex3f (-5,0,-4);
glVertex3f (-5,0,0);
glEnd();
glBegin (GL_QUADS);
//bawah
glColor3ub (189,245,210);
glVertex3f (-5,0,0);
glVertex3f (-5,0,-4);
glColor3ub (0,0,0);
glVertex3f (0,0,-4);
glVertex3f (0,0,0);
glEnd();
glTranslatef(20,0,0);
glScalef(2,2,2);
glRotatef(60,0,1,0);
glBegin (GL_POLYGON);
//depan
glColor3ub (255,0,0);
glVertex3f (-5,0,0);
glVertex3f (0,0,0);
glVertex3f (2,3,0);
glColor3ub (0,0,0);
glVertex3f (0,6,0);
glVertex3f (-5,6,0);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_POLYGON);
//belakang
glColor3ub (255,0,0);
glVertex3f (-5,0,-4);
glVertex3f (0,0,-4);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (-5,6,-4);
glVertex3f (-7,3,-4);
glEnd();
glBegin (GL_QUADS);
//kanan bawah
glColor3ub (223,105,200);
glVertex3f (0,0,0);
glVertex3f (0,0,-4);
glColor3ub (0,0,0);
glVertex3f (2,3,-4);
glVertex3f (2,3,0);
glEnd();
glBegin (GL_QUADS);
//kanan atas
glColor3ub (109,105,200);
glVertex3f (2,3,0);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (0,6,0);
glEnd();
glBegin (GL_QUADS);
//atas
glColor3ub (189,245,210);
glVertex3f (0,6,0);
glVertex3f (0,6,-4);
glColor3ub (0,0,0);
glVertex3f (-5,6,-4);
glVertex3f (-5,6,0);
glEnd();
glBegin (GL_QUADS);
//kiri atas
glColor3ub (109,105,200);
glVertex3f (-5,6,0);
glVertex3f (-5,6,-4);
glColor3ub (0,0,0);
glVertex3f (-7,3,-4);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_QUADS);
//kiri bawah
glColor3ub (223,105,200);
glVertex3f (-7,3,0);
glVertex3f (-7,3,-4);
glColor3ub (0,0,0);
glVertex3f (-5,0,-4);
glVertex3f (-5,0,0);
glEnd();
glBegin (GL_QUADS);
//bawah
glColor3ub (189,245,210);
glVertex3f (-5,0,0);
glVertex3f (-5,0,-4);
glColor3ub (0,0,0);
glVertex3f (0,0,-4);
glVertex3f (0,0,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( 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 );
}
#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( "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 (20,20,35,0,0,0,0,1,0);
glRotatef(1,0,1,0);
glBegin (GL_POLYGON);
//depan
glColor3ub (255,0,255);
glVertex3f (-5,0,0);
glVertex3f (0,0,0);
glVertex3f (2,3,0);
glColor3ub (0,0,0);
glVertex3f (0,6,0);
glVertex3f (-5,6,0);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_POLYGON);
//belakang
glColor3ub (255,0,255);
glVertex3f (-5,0,-4);
glVertex3f (0,0,-4);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (-5,6,-4);
glVertex3f (-7,3,-4);
glEnd();
glBegin (GL_QUADS);
//kanan bawah
glColor3ub (223,105,200);
glVertex3f (0,0,0);
glVertex3f (0,0,-4);
glColor3ub (0,0,0);
glVertex3f (2,3,-4);
glVertex3f (2,3,0);
glEnd();
glBegin (GL_QUADS);
//kanan atas
glColor3ub (0,105,200);
glVertex3f (2,3,0);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (0,6,0);
glEnd();
glBegin (GL_QUADS);
//atas
glColor3ub (200,255,0);
glVertex3f (0,6,0);
glVertex3f (0,6,-4);
glColor3ub (0,0,0);
glVertex3f (-5,6,-4);
glVertex3f (-5,6,0);
glEnd();
glBegin (GL_QUADS);
//kiri atas
glColor3ub (109,105,200);
glVertex3f (-5,6,0);
glVertex3f (-5,6,-4);
glColor3ub (0,0,0);
glVertex3f (-7,3,-4);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_QUADS);
//kiri bawah
glColor3ub (223,105,200);
glVertex3f (-7,3,0);
glVertex3f (-7,3,-4);
glColor3ub (0,0,0);
glVertex3f (-5,0,-4);
glVertex3f (-5,0,0);
glEnd();
glBegin (GL_QUADS);
//bawah
glColor3ub (189,245,210);
glVertex3f (-5,0,0);
glVertex3f (-5,0,-4);
glColor3ub (0,0,0);
glVertex3f (0,0,-4);
glVertex3f (0,0,0);
glEnd();
glTranslatef(20,0,0);
glScalef(2,2,2);
glRotatef(60,0,1,0);
glBegin (GL_POLYGON);
//depan
glColor3ub (255,0,0);
glVertex3f (-5,0,0);
glVertex3f (0,0,0);
glVertex3f (2,3,0);
glColor3ub (0,0,0);
glVertex3f (0,6,0);
glVertex3f (-5,6,0);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_POLYGON);
//belakang
glColor3ub (255,0,0);
glVertex3f (-5,0,-4);
glVertex3f (0,0,-4);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (-5,6,-4);
glVertex3f (-7,3,-4);
glEnd();
glBegin (GL_QUADS);
//kanan bawah
glColor3ub (223,105,200);
glVertex3f (0,0,0);
glVertex3f (0,0,-4);
glColor3ub (0,0,0);
glVertex3f (2,3,-4);
glVertex3f (2,3,0);
glEnd();
glBegin (GL_QUADS);
//kanan atas
glColor3ub (109,105,200);
glVertex3f (2,3,0);
glVertex3f (2,3,-4);
glColor3ub (0,0,0);
glVertex3f (0,6,-4);
glVertex3f (0,6,0);
glEnd();
glBegin (GL_QUADS);
//atas
glColor3ub (189,245,210);
glVertex3f (0,6,0);
glVertex3f (0,6,-4);
glColor3ub (0,0,0);
glVertex3f (-5,6,-4);
glVertex3f (-5,6,0);
glEnd();
glBegin (GL_QUADS);
//kiri atas
glColor3ub (109,105,200);
glVertex3f (-5,6,0);
glVertex3f (-5,6,-4);
glColor3ub (0,0,0);
glVertex3f (-7,3,-4);
glVertex3f (-7,3,0);
glEnd();
glBegin (GL_QUADS);
//kiri bawah
glColor3ub (223,105,200);
glVertex3f (-7,3,0);
glVertex3f (-7,3,-4);
glColor3ub (0,0,0);
glVertex3f (-5,0,-4);
glVertex3f (-5,0,0);
glEnd();
glBegin (GL_QUADS);
//bawah
glColor3ub (189,245,210);
glVertex3f (-5,0,0);
glVertex3f (-5,0,-4);
glColor3ub (0,0,0);
glVertex3f (0,0,-4);
glVertex3f (0,0,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( 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 );
}
membuat Kubus Pada Pelles C
#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( "Praktikum Grafik Komputer LabTI" );
glfwSwapInterval( 1 );
//
// mulai OpenGL (melakukan setting awal OpenGL)
mulaiOpenGL();
//
// mulai looping utama program
float x1=0, x2=5, y1=0, y2=5 , z1=0, z2=5;
while( mRunning )
{
//
// bersihkan layar dan depth buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
//
// lakukan penggambaran di sini
//------------------------------------------------------------------------------------
/*glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,10,0);
glVertex3f(5,15,0);
glVertex3f(10,10,0);
glEnd();
glBegin(GL_QUADS);
glColor3f(255,0,255);
glVertex3f(0,0,0);
glVertex2f(0,10);
glVertex2f(10,10);
glVertex2f(10,0);*/
//DEPAN
gluLookAt(10,25,30,0,0,0,0,1,0);
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
glTranslatef(10,0,0);
glScalef(1,2,1);
glRotatef(60,0,1,0);
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
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( 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 );
}
#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( "Praktikum Grafik Komputer LabTI" );
glfwSwapInterval( 1 );
//
// mulai OpenGL (melakukan setting awal OpenGL)
mulaiOpenGL();
//
// mulai looping utama program
float x1=0, x2=5, y1=0, y2=5 , z1=0, z2=5;
while( mRunning )
{
//
// bersihkan layar dan depth buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
//
// lakukan penggambaran di sini
//------------------------------------------------------------------------------------
/*glBegin(GL_TRIANGLES);
glColor3f(0,255,255);
glVertex3f(0,10,0);
glVertex3f(5,15,0);
glVertex3f(10,10,0);
glEnd();
glBegin(GL_QUADS);
glColor3f(255,0,255);
glVertex3f(0,0,0);
glVertex2f(0,10);
glVertex2f(10,10);
glVertex2f(10,0);*/
//DEPAN
gluLookAt(10,25,30,0,0,0,0,1,0);
//DEPAN
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
glTranslatef(10,0,0);
glScalef(1,2,1);
glRotatef(60,0,1,0);
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y1,z1);
glEnd();
//ATAS
glBegin(GL_QUADS);
glColor3f(0,255,0);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y2,z1);
glEnd();
//BAWAH
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y1,z2);
glVertex3f(x2,y1,z2);
glVertex3f(x2,y1,z1);
glEnd();
//KANAN
glBegin(GL_QUADS);
glColor3f(0,0,255);
glVertex3f(x1,y1,z1);
glVertex3f(x1,y2,z1);
glVertex3f(x1,y2,z2);
glVertex3f(x1,y1,z2);
glEnd();
//BELAKANG
glBegin(GL_QUADS);
glColor3f(255,255,255);
glVertex3f(x1,y1,z2);
glVertex3f(x1,y2,z2);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
glEnd();
//KIRI
glBegin(GL_QUADS);
glColor3f(255,255,0);
glVertex3f(x2,y1,z1);
glVertex3f(x2,y2,z1);
glVertex3f(x2,y2,z2);
glVertex3f(x2,y1,z2);
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( 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 );
}
Membuat Persegi Pada Pelles C
#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( "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(20,30,30,0,0,0,0,1,0);
//Persegi
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-20,0,-10);
glVertex3f(-20,0,10);
glVertex3f(10,0,10);
glVertex3f(10,0,-10);
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( 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 );
}
#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( "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(20,30,30,0,0,0,0,1,0);
//Persegi
glBegin(GL_QUADS);
glColor3f(0,255,255);
glVertex3f(-20,0,-10);
glVertex3f(-20,0,10);
glVertex3f(10,0,10);
glVertex3f(10,0,-10);
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( 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 );
}
Membuat Segitiga Pada Pelles C
#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( "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,50,30,0,0,0,0,1,0);
//Segitiga
glBegin(GL_TRIANGLES);
glColor3ub(0,255,255);
glVertex3f(0,30,0);
glVertex3f(-10,0,0);
glVertex3f(10,0,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( 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 );
}
#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( "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,50,30,0,0,0,0,1,0);
//Segitiga
glBegin(GL_TRIANGLES);
glColor3ub(0,255,255);
glVertex3f(0,30,0);
glVertex3f(-10,0,0);
glVertex3f(10,0,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( 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 );
}
membuat Garis Pada Pelles C
#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( "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);
//diaper
//lingkaran 1
glBegin(GL_LINES);
glColor3f(0,1,1);
glVertex2f(-20,0); glVertex2f(-20,10);
glVertex2f(-20,5); glVertex2f(-15,5);
glVertex2f(-15,0); glVertex2f(-15,10);
glVertex2f(-13,0); glVertex2f(-10,10);
glVertex2f(-11.5,5); glVertex2f(-8.5,5);
glVertex2f(-10,10); glVertex2f(-7,0);
glVertex2f(-5,5); glVertex2f(-0,5);
glVertex2f(-5,5); glVertex2f(-0,10);
glVertex2f(-5,0); glVertex2f(-0,5);
glVertex2f(2,0); glVertex2f(5,10);
glVertex2f(3.5,5); glVertex2f(6,5);
glVertex2f(5,10); glVertex2f(7,0);
glVertex2f(9,0); glVertex2f(9,10);
glVertex2f(9,10); glVertex2f(13,0);
glVertex2f(13,0); glVertex2f(13,10);
//------------------------------------------------------------------------------------
//
// 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 );
}
#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( "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);
//diaper
//lingkaran 1
glBegin(GL_LINES);
glColor3f(0,1,1);
glVertex2f(-20,0); glVertex2f(-20,10);
glVertex2f(-20,5); glVertex2f(-15,5);
glVertex2f(-15,0); glVertex2f(-15,10);
glVertex2f(-13,0); glVertex2f(-10,10);
glVertex2f(-11.5,5); glVertex2f(-8.5,5);
glVertex2f(-10,10); glVertex2f(-7,0);
glVertex2f(-5,5); glVertex2f(-0,5);
glVertex2f(-5,5); glVertex2f(-0,10);
glVertex2f(-5,0); glVertex2f(-0,5);
glVertex2f(2,0); glVertex2f(5,10);
glVertex2f(3.5,5); glVertex2f(6,5);
glVertex2f(5,10); glVertex2f(7,0);
glVertex2f(9,0); glVertex2f(9,10);
glVertex2f(9,10); glVertex2f(13,0);
glVertex2f(13,0); glVertex2f(13,10);
//------------------------------------------------------------------------------------
//
// 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 );
}
Rabu, 09 November 2011
Peranan desain pemodelan grafik dalam interaksi manusia dengan komputer2
Setelah dijelaskan peranan desain pemodelan grafik dalam interaksi manusia dengan komputer, kemudian pada pertemuan kali ini saya akan menjelaskan contoh penggunaan Desain Pemodelan Grafik dalam Interaksi Manusia dengan Komputer, sebenarnya hampir semua barang yang berkaitan dengan komputer pasti menggunakan desain pemodelan grafik, dalam contoh ini saya akan bahas menjadi 2 bagian yaitu :
Dalam segi Hardware dan Software.
Dalam Segi Hardware misalanya Casing, Casing CPU di desain sedemikian rupa agar hardware dalam PC kita tidaklah terlalu panas, bahkan ada Casing yang dapat menjaga suhu di PC selalu dingin atau stabil, itu semua terjadi karena model Casing yang telah di atur dalam desain pemodelan grafik bagaimana cara udara masuk dan bagaimana cara Udara keluar.
Kemudian contoh dalam segi Software, dalam segi software sebenarnya hampir semua software yang berkaitan dengan Multimedia pasti menggunakan Desain pemodelan grafik, karena software tersebut memang berperan sebagai sarana pembuatan sebuah model atau desain suatu objek, contohnya sebagai berikut:
Corel draw lebih berperan sebagai pembuatan sebuah objek dari awal, misal pembuatan sebuah logo, simbol, dll
Photoshop lebih berperan untuk pembuatan sebuah desai objek yang berbasis Bitmap.
Blender lebih berperan dalam pembuatan sebuah objek 3d atau pembuatan sebuah lanscape juga termasuk kedalam sebuah peran dari Blender.
Semua software tersebut menurut saya menggunanakan peranana Desain Pemodelan Grafik.
Peranan desain pemodelan grafik dalam interaksi manusia dengan komputer
Pada pertemuan kali ini saya mendapatkan tugas untuk membahas Peranan Desain Pemodelan Grafik dalam Interaksi Manusia dengan Komputer, seperti pada meteri sebelumnya Desain pemodelan Grafik adalah suatu Seni untuk membuat dan menciptakan sebuah gambar yang besifat garis-garis, atau bidang-bidang yang secara visual dapat menjelaskan hubungan yang ingin disajikan.
Sedangkan interaksi Manusia dengan Komputer, adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia.
Oleh karena itu menurut saya sangat berperan dalam Interaksi manusia dengan dengan komputer karena desain pemodelan grafik berperan sebagia sarana atau media perancangan dalam mengimplementasikan disiplin ilmu yang memperlajari hubungan antara manusia dan komputer.
Langganan:
Postingan (Atom)