Funções para serem usadas no exercício de Lab Hoje
glRotatef(GLfloat angulo, GLfloat x, GLfloat y, GLfloat z)
glTranslatef(GLfloat x, GLfloat y, GLfloat z);
glScalef(GLfloat x, GLfloat y, GLfloat z);
Exemplo da Função que Desenha um Triângulo
void DesenhaTriangulo()
{
if (trans)
{
GLfloat dx = (GLfloat)xfin - (GLfloat)xini;
GLfloat dy = (GLfloat)yini - (GLfloat)yfin;
GLfloat dz = 0;
glTranslatef(dx,dy,0);
dx = 0.0; dy = 0.0;
trans = 0;
}
// rotaciona a direita
if (rot == 1)
{
glRotatef(2.0,0.0,0.0,1.0);
rot = 0;
}
Exemplo da Função que Desenha um Triângulo (continua ..)
// rotaciona a esquerda
if (rot == -1)
{
glRotatef(-2.0,0.0,0.0,1.0);
rot = 0;
}
// amplia
if (amp)
{
glScalef(amp,amp,1.0);
amp = 1.0;
}
glColor3f(R,G,B);
glBegin(GL_TRIANGLE_STRIP);
glVertex2f(-50,-50);
glVertex2f(50,-50);
glVertex2f(0,50);
glEnd();
}
Exemplo da Função Teclas Especiais
// Teclado para Teclas Especiais
void TecladoEspecial(int tecla, int x, int y)
{
switch(tecla)
{
case GLUT_KEY_F1:
printf("\nAo Pressionar F1 essas Instrucoes sempre serao Reapresentadas\n");
printf("\n\n");
printf("Instrucoes\n\n");
printf("Pressione o Botao Esquerdo, Arraste e Solte para Transladar\n\n");
printf("Tecle F2 e F3 para rotacionar\n\n");
printf("Tecle F4 e F5 para escalonar\n\n");
printf("Use o Botão Direito para Acessar o Menu\n\n");
break;
case GLUT_KEY_F2: // Rotaciona a Direita
//printf("\nRotaciona a Direita\n");
rot = 1;
glutPostRedisplay();
//printf("\n%f %f\n",rtd,rte);
break;
Exemplo da Função Teclas Especiais
case GLUT_KEY_F3: // Rotaciona a Esquerda
//printf("\nRotaciona a Esquerda\n");
rot = -1;
glutPostRedisplay();
break;
case GLUT_KEY_F4: // Amplia
//printf("\nAmplia\n");
amp = 1.1;
glutPostRedisplay();
break;
case GLUT_KEY_F5: // Reduz
//printf("\nReduzir\n");
amp = 0.9;
glutPostRedisplay();
break;
case GLUT_KEY_INSERT:
printf("\nPressionada a Tecla INSERT\n");
break;
case GLUT_KEY_HOME:
printf("\nPressionada a Tecla HOME\n");
break;
}
}
Exercícios com Pontuação
1- [Nível Básico]: Usando como base o exercício da Aula 2, Faça um programa
para transladar as primitivas utilizando o mouse.
2- [Nível Básico]: Usando como base o mesmo programa da Aula 2, faça um
programa para rotacionar as primitivas utilizando o mouse.
3- [Nível Básico]: Usando como base, o mesmo programa da Aula 2, faça um
programa para escalonar as primitivas utilizando o mouse.
4- [Nível Médio]: Usando as funcionalidades dos exercícios 1, 2 e 3,
crie interações com o mouse que permitam acrescentar polígonos
complexos, através da inserção de vértices com o clic do mouse.
Download

Slide 1