Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/glew.h>
- #include <GL/freeglut.h>
- void quadrado(){
- glColor3f(0.5, 0.0, 0.5);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(30.0, 30.0, 0.0);
- glVertex3f(70.0, 30.0, 0.0);
- glVertex3f(70.0, 70.0, 0.0);
- glVertex3f(30.0, 70.0, 0.0);
- glEnd();
- glFlush();
- }
- void trapezios(int x, int y){
- glColor3f(0.0, 0.0, 1.0);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f((30.0), (30.0), 0.0);
- glVertex3f((70.0), (30.0), 0.0);
- glVertex3f((80), (20), 0.0);
- glVertex3f((20), (20), 0.0);
- glEnd();
- glFlush();
- glColor3f(0.1, 0.9, 0.9);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(30.0, 30.0, 0.0);
- glVertex3f(20.0, 20.0, 0.0);
- glVertex3f(20.0, 80.0, 0.0);
- glVertex3f(30.0, 70.0, 0.0);
- glEnd();
- glFlush();
- glColor3f(0.5, 0.5, 0.5);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(30.0, 70.0, 0.0);
- glVertex3f(70.0, 70.0, 0.0);
- glVertex3f(80.0, 80.0, 0.0);
- glVertex3f(20.0, 80.0, 0.0);
- glEnd();
- glFlush();
- glColor3f(0.0, 1.0, 1.0);
- glBegin(GL_TRIANGLE_FAN);
- glVertex3f(80.0, 80.0, 0.0);
- glVertex3f(80.0, 20.0, 0.0);
- glVertex3f(70.0, 30.0, 0.0);
- glVertex3f(70.0, 70.0, 0.0);
- glEnd();
- glFlush();
- }
- void desenhaQuadrado(){
- int a=0;
- int x,y;
- glClear(GL_COLOR_BUFFER_BIT);
- quadrado();
- x = -10;
- y = -5;
- //for(a=1;a<5;a++){
- trapezios(x,y);
- // if
- // }
- }
- // NOVIDADE: uma função que vamos chamar dentro
- // do "main"
- // Inicia algumas variáveis de estado do OpenGL
- void setup()
- {
- // define qual é a cor do fundo
- glClearColor(1.0, 1.0, 1.0, 0.0); // branco
- // desenho preenchido vs. contorno
- //glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- }
- // NOVIDADE: callback para o evento "reshape"
- void redimensionada(int width, int height)
- {
- // left, bottom, right, top
- glViewport(0, 0, width, height);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glOrtho(0.0, 100.0, 0.0, 100.0, -1.0, 1.0);
- glMatrixMode(GL_MODELVIEW);
- glLoadIdentity();
- }
- // NOVIDADE: callback de "keyboard"
- void teclaPressionada(unsigned char key, int x, int y)
- {
- // vê qual tecla foi pressionada
- switch(key)
- {
- case 27: // Tecla "ESC"
- exit(0); // Sai da aplicação
- break;
- default:
- break;
- /*case 67:
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- break;
- case 99:
- glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
- break;
- */
- }
- }
- // Função principal
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv);
- glutInitContextVersion(1, 1);
- glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
- glutInitWindowSize(500, 500);
- glutInitWindowPosition(100, 100);
- glutCreateWindow("Disco quadrado");
- // Registra callbacks para eventos
- glutDisplayFunc(desenhaQuadrado);
- glutReshapeFunc(redimensionada);
- glutKeyboardFunc(teclaPressionada);
- // Configura valor inicial de algumas
- // variáveis de estado do OpenGL
- setup();
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement