Advertisement
anambrito

disco quadrado

Aug 22nd, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.20 KB | None | 0 0
  1. #include <GL/glew.h>
  2. #include <GL/freeglut.h>
  3.  
  4. void quadrado(){
  5.      
  6.     glColor3f(0.5, 0.0, 0.5);
  7.        
  8.         glBegin(GL_TRIANGLE_FAN);
  9.        
  10.             glVertex3f(30.0, 30.0, 0.0);
  11.             glVertex3f(70.0, 30.0, 0.0);
  12.             glVertex3f(70.0, 70.0, 0.0);
  13.             glVertex3f(30.0, 70.0, 0.0);
  14.  
  15.         glEnd();
  16.        
  17.     glFlush();
  18.  
  19. }
  20.  
  21. void trapezios(int x, int y){
  22.    
  23.     glColor3f(0.0, 0.0, 1.0);
  24.        
  25.         glBegin(GL_TRIANGLE_FAN);
  26.  
  27.             glVertex3f((30.0), (30.0), 0.0);
  28.             glVertex3f((70.0), (30.0), 0.0);
  29.             glVertex3f((80), (20), 0.0);
  30.             glVertex3f((20), (20), 0.0);
  31.  
  32.        
  33.         glEnd();
  34.  
  35.     glFlush();
  36.  
  37.     glColor3f(0.1, 0.9, 0.9);
  38.        
  39.         glBegin(GL_TRIANGLE_FAN);
  40.  
  41.             glVertex3f(30.0, 30.0, 0.0);
  42.             glVertex3f(20.0, 20.0, 0.0);
  43.             glVertex3f(20.0, 80.0, 0.0);
  44.             glVertex3f(30.0, 70.0, 0.0);
  45.  
  46.  
  47.        
  48.         glEnd();
  49.  
  50.     glFlush();
  51.    
  52.     glColor3f(0.5, 0.5, 0.5);
  53.        
  54.         glBegin(GL_TRIANGLE_FAN);
  55.  
  56.             glVertex3f(30.0, 70.0, 0.0);
  57.             glVertex3f(70.0, 70.0, 0.0);
  58.             glVertex3f(80.0, 80.0, 0.0);
  59.             glVertex3f(20.0, 80.0, 0.0);
  60.  
  61.        
  62.         glEnd();
  63.  
  64.     glFlush();
  65.    
  66.     glColor3f(0.0, 1.0, 1.0);
  67.        
  68.         glBegin(GL_TRIANGLE_FAN);
  69.  
  70.             glVertex3f(80.0, 80.0, 0.0);
  71.             glVertex3f(80.0, 20.0, 0.0);
  72.             glVertex3f(70.0, 30.0, 0.0);
  73.             glVertex3f(70.0, 70.0, 0.0);
  74.            
  75.  
  76.        
  77.         glEnd();
  78.  
  79.     glFlush();
  80.  
  81. }
  82.  
  83. void desenhaQuadrado(){
  84.  
  85.     int a=0;
  86.     int x,y;
  87.  
  88.     glClear(GL_COLOR_BUFFER_BIT);
  89.     quadrado();
  90.  
  91.     x = -10;
  92.     y = -5;
  93.        
  94.     //for(a=1;a<5;a++){
  95.  
  96.         trapezios(x,y);
  97.        
  98.     //  if
  99. //  }
  100.    
  101. }
  102.  
  103. // NOVIDADE: uma função que vamos chamar dentro
  104. //    do "main"
  105. // Inicia algumas variáveis de estado do OpenGL
  106. void setup()
  107. {
  108.     // define qual é a cor do fundo
  109.     glClearColor(1.0, 1.0, 1.0, 0.0); // branco
  110.  
  111.     // desenho preenchido vs. contorno
  112.     //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
  113. }
  114.  
  115. // NOVIDADE: callback para o evento "reshape"
  116. void redimensionada(int width, int height)
  117. {
  118.    // left, bottom, right, top
  119.    glViewport(0, 0, width, height);
  120.  
  121.    glMatrixMode(GL_PROJECTION);
  122.    glLoadIdentity();
  123.    glOrtho(0.0, 100.0, 0.0, 100.0, -1.0, 1.0);
  124.  
  125.    glMatrixMode(GL_MODELVIEW);
  126.    glLoadIdentity();
  127. }
  128.  
  129. // NOVIDADE: callback de "keyboard"
  130. void teclaPressionada(unsigned char key, int x, int y)
  131. {
  132.     // vê qual tecla foi pressionada
  133.     switch(key)
  134.     {
  135.     case 27:      // Tecla "ESC"
  136.         exit(0);  // Sai da aplicação
  137.         break;
  138.     default:
  139.         break;
  140.  
  141.     /*case 67:
  142.         glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
  143.         break;
  144.  
  145.     case 99:
  146.         glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
  147.         break;
  148.     */
  149.     }
  150. }
  151.  
  152. // Função principal
  153. int main(int argc, char** argv)
  154. {
  155.    glutInit(&argc, argv);
  156.  
  157.    glutInitContextVersion(1, 1);
  158.    glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);
  159.  
  160.    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
  161.    glutInitWindowSize(500, 500);
  162.    glutInitWindowPosition(100, 100);
  163.  
  164.    glutCreateWindow("Disco quadrado");
  165.  
  166.    // Registra callbacks para eventos
  167.    glutDisplayFunc(desenhaQuadrado);
  168.    glutReshapeFunc(redimensionada);
  169.    glutKeyboardFunc(teclaPressionada);
  170.  
  171.    // Configura valor inicial de algumas
  172.    // variáveis de estado do OpenGL
  173.    setup();
  174.  
  175.    glutMainLoop();
  176.    return 0;
  177. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement