boedak kubu

Friday, June 15, 2012

Transprmasi 3D

//editing: Muhammad Hasim


//#include "stdafx.h"
#include <GL/glut.h>
#include "stdio.h"
//#include "math.h"

GLfloat moveX=1.0,moveY=0.0,moveZ=0.0;

void init() {

    glEnable(GL_DEPTH_TEST);
    glShadeModel(GL_FLAT);
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
    glColor3f(1.0,1.0,1.0);
   

}
void display() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//    glClear(GL_COLOR_BUFFER_BIT );
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt(moveX,moveY,moveZ,0.0,0.0,0.0,0.0,1.0,0.0);
    printf("X: %f, Y: %f, Z: %f\n",moveX,moveY,moveZ); //ini untuk menampilkan posisi objek discreen

    glColor3f(0.0f,0.0f,1.0f);//warna line kotak object
    glutWireCube(01.5);//size kotak object
    glBegin(GL_POLYGON);
      glColor3f(1.0f,1.0f,1.0f);//warna object
      glVertex3f(0.5f,0.5f,0.5f);
      glVertex3f(0.5f,0.5f,-0.5f);
      glVertex3f(-0.5f,0.5f,-0.5f);
      glVertex3f(-0.5f,0.5f,0.5f);     
    glEnd();
   
    glBegin(GL_QUADS);
      glColor3f(1.0f,0.0f,0.0f);//warna object
      glVertex3f(0.5f,-0.5f,0.5f);
      glVertex3f(0.5f,0.5f,0.5f);
      glVertex3f(0.5f,0.5f,-0.5f);
      glVertex3f(0.5f,-0.5f,-0.5f);

      glColor3f(1.0f,1.0f,0.0f);//warna object
      glVertex3f(-0.5f,0.5f,-0.5f);
      glVertex3f(-0.5f,-0.5f,-0.5f);
      glVertex3f(0.5f,-0.5f,-0.5f);
      //glVertex3f(0.5f,0.5f,-0.5f);
      glVertex3f(0.7f,0.5f,-0.5f);
    glEnd();
    glutSwapBuffers();

}

void reshape(int w, int h) {

    glViewport(0,0,w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-2.0,2.0,-2.0,2.0,-2.0,2.0);//size object
}

void mykeyboard(unsigned char key, int x,int y) {

    if (key == 'a')//huruf penggerak di keyboard
        moveX+=0.1;
    if (key == 'b')//huruf penggerak di keyboard
        moveX-=0.1;
    if (key == 'c')//huruf penggerak di keyboard
        moveY+=0.1;
    if (key == 'd')//huruf penggerak di keyboard
        moveY-=0.1;
    if (key == 'e')//huruf penggerak di keyboard
        moveZ+=0.1;
    if (key == 'f')//huruf penggerak di keyboard
        moveZ-=0.1;
    glutPostRedisplay();
}

int main(int argc, char* argv[])
{

    glutInit(&argc,argv);
//    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(700,500);
    glutInitWindowPosition(50,50);
    glutCreateWindow("OpenGL - 3D Programming");
    glutReshapeFunc(reshape);
    glutDisplayFunc(display);
    glutKeyboardFunc(mykeyboard);

    init();
    glutMainLoop();
    return 0;
}


0 comments: