TUGAS GRAFKOM Q 3

Friday, 7 December 2012



 KINCIR ANGIN

keterangan : 

pakek openGL microsoft visual c++ 2010 express.
kincir angin ini bisa di control dengan meng klik tombol di keyboard

tombol d : muter ke kiri.
tombol s : muter ke kanan..

source code

#include <glut.h>
#include <stdlib.h>

static GLfloat spin = 0.0;

void init(void)
{
   glClearColor (1.1, 1.1, 1.1, 1.1);
   glShadeModel (GL_FLAT);
}

void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT); // pembuatan  tiang
   glPushMatrix();
    glColor3f(1.0, 0.0, 1.0);
   glRectf(-8.0, -50.0, 8.0, 10.0);
   glPopMatrix();


   glPushMatrix(); // pembuatan baling 1
   glRotatef(spin, 0.0, 0.0, 1.0);
   glColor3f(0.0, 0.0, 1.0); //pembuatan baling 1 warna biru
   glRectf(-5.0, -30.0, 5.0, 30.0);

   glColor3f(0.0, 1.0, 0.0); //pembuatan baling 2 hijau
   glRectf(-30.0, -5.0, 30.0, 5.0);
   glPopMatrix();
   glutSwapBuffers();
}

void spinDisplay(void)
{
   spin = spin + 0.3;
   if (spin > 360.0)
      spin = spin - 360.0;
   glutPostRedisplay();
}
void spinDisplay2(void)
{
   spin = spin - 0.3;
   if (spin > 360.0)
      spin = spin - 360.0;
   glutPostRedisplay();
}
void reshape(int w, int h)
{
   glViewport (0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
}

void keyboard (unsigned char key, int x, int y)
{
   switch (key) {
      case 'd':
         glutIdleFunc(spinDisplay);
         break;
      case 's':
         glutIdleFunc(spinDisplay2);
         break;
   }
}
/*void keyboard (unsigned char key, int x, int y)
{
   switch (key) {
      case 'd':
         day = (day + 10) % 360;
         glutPostRedisplay();
         break;
      case 'D':
         day = (day - 10) % 360;
         glutPostRedisplay();
         break;
      case 'y':
         year = (year + 5) % 360;
         glutPostRedisplay();
         break;
      case 'Y':
         year = (year - 5) % 360;
         glutPostRedisplay();
         break;
      default:
         break;
   }
}*/

/*
 *  Request double buffer display mode.
 *  Register mouse input callback functions
 */
int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
   glutInitWindowSize (500, 500);
   glutInitWindowPosition (100, 100);
   glutCreateWindow (argv[0]);
   init ();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutKeyboardFunc(keyboard);
   glutMainLoop();
   return 0;
}


1 comment:

Cara Refund Google Ads

  Non Aktifkan Akun gogle dulu. Baru semua saldo yang berada di dalamnya, akan otomatis di kembalikan, lengkap dengan tgl berapa akan di kem...

 
FREE BLOGGER TEMPLATE BY DESIGNER BLOGS