#include
#include
// redesenhar janela de visualização
void DesenhaObjetos(void)
{
static float angulo = 0.0f;
// limpa a janela com a cor branca
glClearColor(1,1,1,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// muda para o sistema de cordenadas do modela
glMatrixMode(GL_MODELVIEW);
// inicializa a matriz de transformação corrente
glLoadIdentity();
//define a cor de desenho vermelho
glColor3f(1,0,0);
// move o triangulo para a esquerda
glTranslatef (0.5, 0.0, 0.0);
// comando para rotação (angulo / x / y / z)
glRotatef(angulo, 0.0, 0.0, 1.0); //z = rotação em seu proprio eixo
// desenha o triangulo no centro da janela
glBegin(GL_TRIANGLES);
glVertex2f(-0.4,-0.3);
glVertex2f( 0.0, 0.3);
glVertex2f( 0.4,-0.3);
glEnd();
// muda para o sistema de cordenadas do modela
glMatrixMode(GL_MODELVIEW);
// inicializa a matriz de transformação corrente
glLoadIdentity();
// move o quadrado para adireita
glTranslatef (-0.5, 0.0, 0.0);
//comando para rotação (angulo / x / y / z)
glRotatef(angulo, 0.0, 0.0, 1.0); //z = rotação em seu proprio eixo
// desenha o quadrado na tela
glBegin(GL_QUADS);
glVertex2f(-0.3, 0.3);
glVertex2f( 0.3, 0.3);
glVertex2f( 0.3,-0.3);
glVertex2f(-0.3,-0.3);
glEnd();
// a variavel 'angulo' é incrementar e
// dar ideia que o objeto está em rotação
angulo += 0.50f;
// intervalo de tempo "cotrola a velocidade de rotação"
Sleep (1);
//*************************
glutSwapBuffers();
}
// gerencia o evento de teclas
void Teclado(unsigned char key, int x, int y)
{
// quando a tecla "ESC" for precionada o programa sera fechado
if (key == 27)
exit(0);
}
// função para iniciar parametros e variaveis
void Inicializa(void)
{
// define a janela de visualização 2d
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-1.0,1.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
}
// Função que executa rotinas padrões da Glut
void idle(void)
{
glutPostRedisplay();
}
// programa principal
int main(void)
{
// define o modo de operação da glut
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
// especifica a posição onde a tela sera criada
glutInitWindowPosition(300,50);
// especifica o tamanho inicial da janela glut
glutInitWindowSize(600,600);
// cria a janela passando como arqumento o titulo da mesma
glutCreateWindow("FAZAG - SI | Computação Gráfica");
// registra a função de redesenho da janela
glutDisplayFunc(DesenhaObjetos);
// rotina padrao do glut
glutIdleFunc(idle);
// registra a função para tratamento das teclas
glutKeyboardFunc(Teclado);
// chama a função para faser as inicializaçoes
Inicializa();
// inicia o processamento e aguarda interaçoes do usuario
glutMainLoop();
return 0;
}
0 comentários:
Postar um comentário