Escolar Documentos
Profissional Documentos
Cultura Documentos
Trabalho: Porco
#include <windows.h>
#include <GL/gl.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
#include<math.h>
void inicio(void){
glClearColor(te,el,la,0);//Cor da tela
glPointSize(0.0);
glLineWidth(0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,0.0,0.0,0.0);
}
void display(void){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
//TERRA
glBegin(GL_QUADS);
glColor3f(t,r,a);
glVertex2f(-1.0,-0.15);
glVertex2f(1.0,-0.15);
glVertex2f(1.0,-1.0);
glVertex2f(-1.0,-1.0);
glEnd();
glPushMatrix();
glPushMatrix();
glRotatef(angle,0.0,0.0,0.0);
glTranslatef(0.0,0.0,0.0);
glTranslatef(xt,yt,0.0);
//Perna esquerda
glBegin(GL_QUADS);
glColor3f(p,ri,co);
glVertex2f(-0.03,0.05);
glVertex2f(-0.03,-0.15);
glVertex2f(-0.08,-0.15);
glVertex2f(-0.08,0.05);
glEnd();
//Perna direita
glBegin(GL_QUADS);
glColor3f(p,ri,co);
glVertex2f(0.03,0.05);
glVertex2f(0.03,-0.15);
glVertex2f(0.08,-0.15);
glVertex2f(0.08,0.05);
glEnd();
//Cabeca
float circlo;
glColor3f(p,ri,co);
glBegin(GL_POLYGON);
for(int i =0;i<360;i++){
circlo = i*3.14/180;
glVertex2f(0.0+0.14*cos(circlo),0.1+0.16*sin(circlo));
}
glEnd();
//Fucinho
glColor3f(f,u,c);
glBegin(GL_POLYGON);
for(int i=0;i<360;i++)
{
circlo=i*3.142/180;
glVertex2f(0.0+0.05*cos(circlo),0.1+0.06*sin(circlo));
}
//Nariz esquerdo
glEnd();
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
for(int i=0;i<360;i++)
{
circlo=i*3.142/180;
glVertex2f(-0.02+0.01*cos(circlo),0.1+0.017*sin(circlo));
}
//Nariz direito
glEnd();
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
for(int i=0;i<360;i++)
{
circlo=i*3.142/180;
glVertex2f(0.02+0.01*cos(circlo),0.1+0.017*sin(circlo));
}glEnd();
//Olho esquerdo
glEnd();
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
for(int i=0;i<360;i++)
{
circlo=i*3.142/180;
glVertex2f(-0.025+0.01*cos(circlo),0.22+0.0095*sin(circlo));
}
//Olho direito
glEnd();
glColor3f(0.0,0.0,0.0);
glBegin(GL_POLYGON);
for(int i=0;i<360;i++)
{
circlo=i*3.142/180;
glVertex2f(0.025+0.01*cos(circlo),0.22+0.0095*sin(circlo));
}glEnd();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
glFlush();
}
switch(key){
case '1':
p=1.0; ri=1.0,co=0.0; //Muda a cor para Amarelo
glutPostRedisplay();
break;
case '2':
p=1.0, ri=0.41, co=0.71;//Muda a cor para rosa
glutPostRedisplay();
break;
default:
break;
}
}
void mouse(int button, int state,int x,int y){
}else{
t=0.0, r=1.0, a=0.0; //altera a cor da terra de verde para castanho
}
}
if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) {
if(cor==0){
glClearColor(0.0,0.0,0.0,0);//altera a cor do fundo de branco para
preto
cor++;
}else{ glClearColor(1.0,1.0,1.0,0);//altera a cor da terra de preto
para branco
cor--;
}
glutPostRedisplay();//Permite a mudanca de cor
}
int main (int argc, char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA);
glutInitWindowSize(1600,900);
glutInitWindowPosition(10,10);
glutCreateWindow("Porco");
inicio();
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutMainLoop();
return EXIT_SUCCESS;
}