Created
February 26, 2011 01:03
-
-
Save MayogaX/844803 to your computer and use it in GitHub Desktop.
A mesma casinha desenhada na aula anterios, só quem em C++
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<GL/glut.h> | |
| /* | |
| @author MayogaX (Priscila Mayumi Sato) | |
| Casinha desenhada com OpenGL usando a linguagem C++ | |
| nas aulas da UMESP (aulas do prof Danilo Costa) | |
| 2D Primitivas Gráficas com OpenGL | |
| */ | |
| void desenha(){ | |
| //Fornece os valores para limpeza do buffer de cor no modo RGBA | |
| glClearColor(0.0,0.0,0.0,0.0); | |
| //Limpa toda a janela para a cor definida no comando glClearColor | |
| glClear(GL_COLOR_BUFFER_BIT); | |
| // Seleciona o modo de projeção Ortogonal | |
| glOrtho (0,256,0,256,-1,1); | |
| //Quadro principal da casa | |
| glBegin(GL_QUADS); | |
| glColor3f(1.0f, 1.0f, 0.0f); | |
| glVertex2d(100, 20); | |
| glVertex2d(200, 20); | |
| glVertex2d(200, 115); | |
| glVertex2d(100, 115); | |
| glEnd(); | |
| //Quadrado puxado da casa | |
| glBegin(GL_QUADS); | |
| glColor3f(1.0f, 1.0f, 0.0f); | |
| glVertex2d(100, 20); | |
| glVertex2d(100, 115); | |
| glVertex2d(40, 135); | |
| glVertex2d(40, 40); | |
| glEnd(); | |
| //Quadrado puxado do telhado | |
| glBegin(GL_QUADS); | |
| glColor3f(0.8f, 0.5f, 0.5f); | |
| glVertex2d(100, 115); | |
| glVertex2d(200, 115); | |
| glVertex2d(180, 175); | |
| glVertex2d(80, 175); | |
| glEnd(); | |
| //Triangulo puxado do telhado | |
| glBegin(GL_TRIANGLES); | |
| glColor3f(0.8f, 0.5f, 0.5f); | |
| glVertex2d(100, 115); | |
| glVertex2d(80, 175); | |
| glVertex2d(40, 135); | |
| glEnd(); | |
| //Quadro janela | |
| glBegin(GL_QUADS); | |
| glColor3f(0.0f, 0.5f, 0.5f); | |
| glVertex2d(140, 45); | |
| glVertex2d(170, 45); | |
| glVertex2d(170, 70); | |
| glVertex2d(140, 70); | |
| glEnd(); | |
| //Linha que cruza a janela (esquerda alta) | |
| glBegin(GL_LINES); | |
| glColor3f(0.0f, 0.0f, 0.0f); | |
| glVertex2i(170,45); | |
| glVertex2i(140,70); | |
| glEnd(); | |
| //Linha que cruza a janela (esquerda baixa) | |
| glBegin(GL_LINES); | |
| glColor3f(0.0f, 0.0f, 0.0f); | |
| glVertex2i(140,45); | |
| glVertex2i(170,70); | |
| glEnd(); | |
| //Quadrado puxado da casa | |
| glBegin(GL_QUADS); | |
| glColor3f(0.0f, 0.0f, 1.0f); | |
| glVertex2d(80, 27); | |
| glVertex2d(80, 60); | |
| glVertex2d(60, 65); | |
| glVertex2d(60, 32); | |
| glEnd(); | |
| /*Serve para forçar as chamadas OpenGL anteriores, efetivamente realizando o desenho na tela*/ | |
| glFlush(); | |
| } | |
| void main () { | |
| /*Indica se vamos usar cores no modo RGBA ou Indexado. | |
| Também especificamos se usaremos um ou dois buffers para a | |
| geração das imagens e se vamos associar buffers para a geração de profundidade, estêncil e/ou acumulador à janela que estamos usando.*/ | |
| glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); | |
| //Cria a Janela | |
| glutCreateWindow ("Desenha pontos"); | |
| /*Toda vez que GLUT determina que a janela tem de ser desenhada, ele chamará a função aqui determinada*/ | |
| glutDisplayFunc(desenha); | |
| /*É o ultimo comando que chamamos. | |
| Ele faz com que todas as janelas criadas sejam mostradas. | |
| Uma vez que entramos neste loop, só saímos quando o programa encerra*/ | |
| glutMainLoop(); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment