Skip to content

Instantly share code, notes, and snippets.

@MayogaX
Created February 26, 2011 01:03
Show Gist options
  • Select an option

  • Save MayogaX/844803 to your computer and use it in GitHub Desktop.

Select an option

Save MayogaX/844803 to your computer and use it in GitHub Desktop.
A mesma casinha desenhada na aula anterios, só quem em C++
#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