Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.93 KB | None | 0 0
  1. /*
  2.  * GLUT Shapes Demo
  3.  *
  4.  * Written by Nigel Stewart November 2003
  5.  *
  6.  * This program is test harness for the sphere, cone
  7.  * and torus shapes in GLUT.
  8.  *
  9.  * Spinning wireframe and smooth shaded shapes are
  10.  * displayed until the ESC or q key is pressed.  The
  11.  * number of geometry stacks and slices can be adjusted
  12.  * using the + and - keys.
  13.  */
  14.  
  15. #ifdef __APPLE__
  16. #include <GLUT/glut.h>
  17. #else
  18. #include <GL/glut.h>
  19. #endif
  20.  
  21. #include <stdlib.h>
  22.  
  23. GLfloat angle = 0.0f;
  24.  
  25. void initGL()
  26. {
  27.     glClearColor(0.0f,0.0f,0.0f,1.0f);
  28. }
  29. void display()
  30. {
  31.     glClear(GL_COLOR_BUFFER_BIT);
  32.     glMatrixMode(GL_MODELVIEW);
  33.     glLoadIdentity();
  34.  
  35.     glPushMatrix();
  36.         glTranslatef(-0.5f,0.4f, 0.0f);
  37.         glRotatef(angle,0.0f,0.0f,1.0f);
  38.         glBegin(GL_QUADS);
  39.         glRotated(angle,0.0f,0.0f,1.0f);
  40.         glBegin(GL_QUADS);
  41.             glColor3f(1.0f,0.0f,0.0f);
  42.             glVertex2f(-0.3f,-0.3f);
  43.             glVertex2f(0.3f,-0.3f);
  44.             glVertex2f(0.3f,0.3f);
  45.             glVertex2f(-0.3f,0.3f);
  46.         glEnd();
  47.     glPopMatrix();
  48.  
  49.     glPushMatrix();
  50.         glTranslatef(-0.4f,-0.3f,0.0f);
  51.         glRotatef(angle,0.0f,0.0f,1.0f);
  52.         glBegin(GL_QUADS);
  53.             glColor3f(0.0f,1.0f,0.0f);
  54.             glVertex2f(-0.3f,-0.3f);
  55.             glVertex2f(0.3f,-0.3f);
  56.             glVertex2f(0.3f,0.3f);
  57.             glVertex2f(-0.3f,0.3f);
  58.         glEnd();
  59.     glPopMatrix();
  60.  
  61.     glPushMatrix();
  62.         glTranslatef(-0.7f,-0.5f,0.0f);
  63.         glRotatef(angle,0.0f,0.0f,1.0f);
  64.         glBegin(GL_QUADS);
  65.             glColor3f(0.2f,0.2f,0.2f);
  66.             glVertex2f(-0.2f,-0.2f);
  67.             glColor3f(1.0f,1.0f,1.0f);
  68.             glVertex2f(0.2f,-0.2f);
  69.             glColor3f(0.2f,0.2f,0.2f);
  70.             glVertex2f(0.2f,0.2f);
  71.             glColor3f(1.0f,1.0f,1.0f);
  72.             glVertex2f(-0.2f,0.2f);
  73.         glEnd();
  74.     glPopMatrix();
  75.  
  76.     glPushMatrix();
  77.         glTranslatef(0.4f,-0.3f,0.0f);
  78.         glRotatef(angle,0.0f,0.0f,1.0f);
  79.         glBegin(GL_TRIANGLES);
  80.             glColor3f(0.0f,0.0f,1.0f);
  81.             glVertex2f(-0.3f, -0.2f);
  82.             glVertex2f(0.3f, -0.2f);
  83.             glVertex2f(0.0f, 0.3f);
  84.         glEnd();
  85.     glPopMatrix();
  86.  
  87.     glPushMatrix();
  88.         glTranslatef(0.6f,-0.6f,0.0f);
  89.         glRotatef(180.0f + angle,0.0f,0.0f,1.0f);
  90.         glBegin(GL_TRIANGLES);
  91.             glColor3f(1.0f,0.0f,0.0f);
  92.             glVertex2f(-0.3f, -0.2f);
  93.             glColor3f(0.0f,1.0f,0.0f);
  94.             glVertex2f(0.3f, -0.2f);
  95.             glColor3f(0.0f,0.0f,1.0f);
  96.             glVertex2f(0.0f, 0.3f);
  97.         glEnd();
  98.     glPopMatrix();
  99.  
  100.     glPushMatrix();
  101.         glTranslatef(0.5f,0.4f,0.0f);
  102.         glRotatef(angle,0.0f,0.0f,1.0f);
  103.         glBegin(GL_POLYGON);
  104.             glColor3f(1.0f,0.0f,0.0f);
  105.             glVertex2f(-0.1f, -0.2f);
  106.             glVertex2f(-0.1f, -0.2f);
  107.             glVertex2f(-0.2f, 0.2f);
  108.             glVertex2f(-0.1f, 0.2f);
  109.             glVertex2f(-0.1f, 0.2f);
  110.             glVertex2f(-0.2f, 0.2f);
  111.         glEnd();
  112.     glPopMatrix();
  113.  
  114.  
  115.     glutSwapBuffers();
  116.     angle +=0.2f;
  117. }
  118.  
  119. void reshape(GLsizei width, GLsizei height)
  120. {
  121.     if(height == 0) height =1;
  122.     GLfloat aspect = (GLfloat)width/(GLfloat) height;
  123.     glViewport(0,0,width,height);
  124.     glMatrixMode(GL_PROJECTION);
  125.     glLoadIdentity();
  126.     if(width>=height)
  127.     {
  128.         gluOrtho2D(-1.0 * aspect, 1.0 * aspect, -1.0, 1.0);
  129.     }
  130.     else
  131.     {
  132.         gluOrtho2D(-1.0,1.0,-1.0/aspect,1.0/aspect);
  133.     }
  134. }
  135.  
  136.  
  137.  
  138. static void idle(void)
  139. {
  140.     glutPostRedisplay();
  141. }
  142.  
  143. /* Program entry point */
  144.  
  145. int main(int argc, char* argv[])
  146. {
  147.     glutInit(&argc, argv);
  148.     glutInitDisplayMode(GLUT_DOUBLE);
  149.     glutInitWindowSize(640,600);
  150.     glutInitWindowPosition(50,50);
  151.     glutCreateWindow("Animacja");
  152.  
  153.     glutDisplayFunc(display);
  154.     glutReshapeFunc(reshape);
  155.     glutIdleFunc(idle);
  156.     initGL();
  157.     glutMainLoop();
  158.     return 0;
  159.  
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement