Cara memuat kerucut 3D di OpenGL

 Berikut script lengkap membuat kerucut 3D :

  1. #include  <stdlib.h>
  2. #include  <glut.h>
  3.  
  4. int  w=400,  h=400,  z=0;
  5. int  x1=0,  y1=0,  sudut=0,  z1=0;
  6.  
  7. void renderScene(void)
  8. {
  9.     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  10.     glClearColor(1,1,1,1);
  11.     glLoadIdentity();
  12.     glTranslatef(0,0,z);
  13.     glRotatef(sudut,x1,y1,z1);
  14.     glColor3f(1,0,0);
  15.     glutWireCone(2,4,25,25);
  16.     glutSwapBuffers();
  17. }
  18.  
  19.  
  20. void  resize(int  w1,  int  h1)
  21. {
  22.     glViewport(0,0,w1,h1);
  23.     glMatrixMode(GL_PROJECTION);
  24.     glLoadIdentity();
  25.     gluPerspective(45.0,(float)  w1/(float)  h1,  1.0,300.0);
  26.     glMatrixMode(GL_MODELVIEW);
  27.     glLoadIdentity();
  28. }
  29.  
  30. void  myKeyboard(unsigned  char  key,  int  x,  int  y)
  31. {
  32.     if  (key  =='a')  z+=5;
  33.     else  if  (key  ==  'd')  z-=5;
  34.     else  if  (key  ==  'y')
  35.     {
  36.         x1=1;
  37.         y1=0;
  38.         z1=0;
  39.         sudut+=10;
  40.     }
  41.     else  if  (key  ==  'x')
  42.     {
  43.         y1=1;
  44.         x1=0;
  45.         z1=0;
  46.         sudut+=-10;
  47.     }
  48.     else  if  (key  ==  'z')  
  49.     {
  50.         y1=0;
  51.         x1=0;
  52.         z1=1;
  53.         sudut+=-10;
  54.     }
  55. }
  56.  
  57. void  init()
  58. {
  59.  
  60.     glEnable(GL_DEPTH_TEST);
  61.     glMatrixMode(GL_PROJECTION);
  62.     glLoadIdentity();
  63.     gluPerspective(45.0,(GLdouble)  w/(GLdouble)  h, 1.0,300.0);
  64.     glMatrixMode(GL_MODELVIEW);
  65. }
  66.  
  67. void  timer(int  value)
  68. {
  69.     glutPostRedisplay();
  70.     glutTimerFunc(50,timer,0);
  71. }
  72.  
  73. void  main  (int  argc,  char  **argv)
  74. {
  75.     glutInit(&argc,  argv);
  76.     glutInitDisplayMode(GLUT_DOUBLE  |  GLUT_DEPTH  | GLUT_RGBA);
  77.     glutInitWindowPosition(100,100);
  78.     glutInitWindowSize(w,h);
  79.     glutCreateWindow("3D");
  80.     gluOrtho2D(-w/2,w/2,-h/2,h/2);
  81.     glutDisplayFunc(renderScene);
  82.     glutReshapeFunc(resize);
  83.     glutKeyboardFunc(myKeyboard);
  84.     glutTimerFunc(1,timer,0);
  85.     init();
  86.     glutMainLoop();
  87. }

Komentar

Postingan populer dari blog ini

Wide Area Network (Pengertian, Fungsi, Kelebihan dan Kekurangan)

Cara membuat Lingkaran dengan di OpenGL

Cara membuat boneka salju 3D di OpenGL