TUGAS GRAFIKA KOMPUTER membuat animasi

  Nama : Ananda Putri Syaviri 130533608243 - Darma Rusdianto 130533608 - Iman Zulfahmi Mawarid 1305336082 -

  1) Animasi 3D Sintaks :

// dimodifikasi dari http://cg.lskk.ee.itb.ac.id/SemesterII-20132014/TugasTutorial/23213347

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <glut.h> float z_pos=-10.0f; float rot=0.0f; void resize( int width, int height){

  glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0, ( float )width/( float )height, 1.0, 300.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }

  void myTimeOut( int id)

  {

  // dipanggil jika timer event // ...advance the state of animation incrementally... //penambahan rotasi animasi

  rot+=15; glutPostRedisplay(); // pemanggilan redsiplay glutTimerFunc(100, myTimeOut, 0); // pemanggilan untuk timer event selanjutnya }

  void myKeyboard( unsigned char key, int x, int y) //tombol untuk merubah ukuran objek

  {

  if ((key== 'a' )||(key== 'p' )) z_pos-=0.1f; if ((key== 'j' )||(key== 'n' )) z_pos+=0.1f;

  }

  void mydisplay( void ) {

  glClear(GL_COLOR_BUFFER_BIT );

  //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glLoadIdentity(); glTranslatef(0.0,0.0f,z_pos); glRotatef(rot, 0, 1, 0); // fungsi rotasi objek ke arah x=0, y=1, z=0) glBegin(GL_QUADS); //bentuk objek kubus dengan gl Quads

  // bagian depan, hijau glColor3f(0.0,1.0,0.0); glVertex3f(-1.0f, -1.0f, 1.0f); glVertex3f( 1.0f, -1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f);

  // bagian belakang, merah

  glColor3f(1.0,0.0,0.0); glVertex3f( 1.0f, -1.0f, -1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); glVertex3f(-1.0f, 1.0f, -1.0f); glVertex3f(-1.0f, -1.0f, -1.0f);

  // bagian atas, kuning

  glColor3f(1.0,1.0,0.0); glVertex3f(-1.0f, 1.0f, -1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glVertex3f( 1.0f, 1.0f, -1.0f);

  // bagian belakang, biru

  glColor3f(0.0,0.0,1.0); glVertex3f(-1.0f, -1.0f, -1.0f); glVertex3f( 1.0f, -1.0f, -1.0f); glVertex3f( 1.0f, -1.0f, 1.0f); glVertex3f(-1.0f, -1.0f, 1.0f);

  // bagian kanan, magenta

  glColor3f(01.0,0.0,1.0); glVertex3f( 1.0f, -1.0f, -1.0f); glVertex3f( 1.0f, 1.0f, -1.0f); glVertex3f( 1.0f, 1.0f, 1.0f); glVertex3f( 1.0f, -1.0f, 1.0f);

  // Left Face, cyan

  glColor3f(0.0,1.0,1.0); glVertex3f(-1.0f, -1.0f, -1.0f); glVertex3f(-1.0f, -1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, 1.0f); glVertex3f(-1.0f, 1.0f, -1.0f); glEnd(); glFlush(); glutSwapBuffers(); }

  void init() {

  glClearColor( 0.0, 0.0, 0.0, 1.0 ); // A Background Clear Color glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45, (GLdouble)500.0/(GLdouble)500.0, 0, 100); glMatrixMode(GL_MODELVIEW);

  return ;

  }

  //fungsi utama int main( int argc, char ** argv)

  { glutInit(&argc,argv); glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); glutInitWindowSize(500,500); glutInitWindowPosition(0,0); glutCreateWindow( "ANIMASI OBJEK 3D" );

  // pemanggilan fungsi

  glutDisplayFunc(mydisplay); glutKeyboardFunc(myKeyboard); glutTimerFunc(100, myTimeOut, 0); glutReshapeFunc(resize); init(); glutMainLoop();

  return 0;

  }

  Screenshoot :  tampilan awal

   mengecil jika menekan tombol ( a/ p)  membesar jika menekan tombol ( j /n.) 2) Screensaver

Sintaks:

  #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include <glut.h> float z_pos=-8.0f; float rot=0.0f; void myTimeOut( int id)

  // dipanggil jika timer event // ...advance the state of animation incrementally... //penambahan rotasi animasi

  rot+=10; glutPostRedisplay(); // pemanggilan redsiplay glutTimerFunc(200, myTimeOut, 0); // pemanggilan untuk timer event selanjutnya }

  void init() {

  glClearColor( 0.0, 0.0, 0.0, 1.0 ); // A Background Clear Color glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30, (GLdouble)100.0/(GLdouble)100.0, 0, 50); glMatrixMode(GL_MODELVIEW);

  return ;

  }

  void mydisplay() {

  glClear(GL_COLOR_BUFFER_BIT); glTranslatef(0.0,0.0f,z_pos); glRotatef(rot, 1, -4, 0); glBegin(GL_POLYGON); glColor3f(0,0,1); glVertex2f(-0.5,-0.5); glColor3f(0,1,1); glVertex2f(-0.75,0); glColor3f(1,0,0); glVertex2f(-0.5,0.5); glColor3f(1,1,0); glVertex2f(0,0.75); glColor3f(1,0,1); glVertex2f(0.5,0.5); glColor3f(1,0,0); glVertex2f(0.75,0); glColor3f(0,1,0); glVertex2f(0.5,-0.5); glColor3f(0,0,1); glVertex2f(0,-0.75); glEnd(); glFlush(); glutSwapBuffers();

  }

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

  glutInitWindowSize(500,500); glutCreateWindow( "Screensaver biasa" ); glutDisplayFunc(mydisplay); init(); glutTimerFunc(200, myTimeOut, 0); glutMainLoop();

  }

  Screenshoot:

   Berputar kea rah kanan, x=1, y=-4, z=0

 Ada perubahan bentuk dari besar ke kecil kemudian ada efek kelap-kelip, saat ukuran

maksimum, maka otomatis menghilang, kemudian muncul lagi, yang sebenarnya objek tersebut berputar dengan sudut 30derajat.