A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Animações Independentes na Mesma Cena. Vamos supor que você tenha dois objetos na cena: O uso do glPushMatrix() e glPopMatrix() Vamos supor que você queira,

Apresentações semelhantes


Apresentação em tema: "Animações Independentes na Mesma Cena. Vamos supor que você tenha dois objetos na cena: O uso do glPushMatrix() e glPopMatrix() Vamos supor que você queira,"— Transcrição da apresentação:

1 Animações Independentes na Mesma Cena

2 Vamos supor que você tenha dois objetos na cena: O uso do glPushMatrix() e glPopMatrix() Vamos supor que você queira, ao mesmo tempo, transladar o rotacionar o quadrado e transladar o circulo

3 A cada chamada da calback de desenho, você empilha a matriz de tranformação glPushMatrix() // empilha uma matriz de transformação atual Em seguida, faz uma rotação (glRotate …), desenha o quadrado com a rotação aplicada) glPopMatrix() // desempilhou a matriz que tinha antes de glPush.. O uso do glPushMatrix() e glPopMatrix()

4 glPushMatrix() // empilha uma matriz de transformação atual Em seguida, faz uma Translação (glTranslate …), desenha o circulo com a Translação aplicada) glPopMatrix() // desempilhou a matriz que tinha antes de glPush.. O uso do glPushMatrix() e glPopMatrix()

5 Vamos supor que você tenha dois objetos na cena: O uso do glPushMatrix() e glPopMatrix() Vamos supor que você queira, ao mesmo tempo, transladar o rotacionar o quadrado e transladar o circulo

6 O uso do glPushMatrix() e glPopMatrix() void Desenha(void) { // Limpa a janela de visualização com a cor // de fundo definida previamente glClear(GL_COLOR_BUFFER_BIT); // Guarda a matriz de transformação corrente na pilha glPushMatrix(); // Aplica uma translação glTranslatef(-35.0f, 0.0f, 0.0f); // Aplica uma rotação ao redor do eixo z glRotatef(90.0f, 0.0f, 0.0f, 1.0f); // Altera a cor do desenho para preto glColor3f(0.0f, 0.0f, 0.0f); // Função da GLUT para fazer o desenho de um "torus" glutWireTorus(7.0, 14.0, 20, 40); // Restaura a matriz de transformação corrente da pilha glPopMatrix();

7 // Guarda a matriz de transformação corrente na pilha glPushMatrix(); // Aplica uma rotação ao redor do eixo x glRotatef(90.0f, 0.0f, 0.0f, 1.0f); // Aplica uma translação glTranslatef(-35.0f, 0.0f, 0.0f); // Altera a cor do desenho para cinza escuro glColor3f(0.4f, 0.4f, 0.4f); // Função da GLUT para fazer o desenho de um "torus" glutWireTorus(7.0, 14.0, 20, 40); // Restaura a matriz de transformação corrente da pilha glPopMatrix(); // Guarda a matriz de transformação corrente na pilha O uso do glPushMatrix() e glPopMatrix()

8 glPushMatrix(); // Aplica uma translação glTranslatef(35.0f, 0.0f, 0.0f); // Aplica uma rotação ao redor do eixo x glRotatef(90.0f, 1.0f, 0.0f, 0.0f); // Altera a cor do desenho para cinza glColor3f(0.6f, 0.6f, 0.6f); // Função da GLUT para fazer o desenho de um "torus" glutWireTorus(7.0, 14.0, 20, 40); // Restaura a matriz de transformação corrente da pilha glPopMatrix(); // Executa os comandos OpenGL glFlush(); } O uso do glPushMatrix() e glPopMatrix()

9 Tarefa Desenhar vários objetos na Tela, contendo iluminação (e iterações com o mouse e teclado, caso queira) e transformações geométrica independentes para cada objeto


Carregar ppt "Animações Independentes na Mesma Cena. Vamos supor que você tenha dois objetos na cena: O uso do glPushMatrix() e glPopMatrix() Vamos supor que você queira,"

Apresentações semelhantes


Anúncios Google