Animaes Independentes na Mesma Cena O uso do

  • Slides: 9
Download presentation
Animações Independentes na Mesma Cena

Animações Independentes na Mesma Cena

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • Vamos supor que

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • Vamos supor que você tenha dois objetos na cena: Vamos supor que você queira, ao mesmo tempo, transladar o rotacionar o quadrado e transladar o circulo

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • A cada chamada

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • A cada chamada da calback de desenho, você empilha a matriz de tranformação • gl. Push. Matrix() // empilha uma matriz de transformação atual • Em seguida, faz uma rotação (gl. Rotate …), desenha o quadrado com a rotação aplicada) • gl. Pop. Matrix() // desempilhou a matriz que tinha antes de gl. Push. .

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • gl. Push. Matrix()

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • gl. Push. Matrix() // empilha uma matriz de transformação atual • Em seguida, faz uma Translação (gl. Translate …), desenha o circulo com a Translação aplicada) • gl. Pop. Matrix() // desempilhou a matriz que tinha antes de gl. Push. .

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • Vamos supor que

O uso do gl. Push. Matrix() e gl. Pop. Matrix() • Vamos supor que você tenha dois objetos na cena: Vamos supor que você queira, ao mesmo tempo, transladar o rotacionar o quadrado e transladar o circulo

O uso do gl. Push. Matrix() e gl. Pop. Matrix() void Desenha(void) { //

O uso do gl. Push. Matrix() e gl. Pop. Matrix() void Desenha(void) { // Limpa a janela de visualização com a cor // de fundo definida previamente gl. Clear(GL_COLOR_BUFFER_BIT); // Guarda a matriz de transformação corrente na pilha gl. Push. Matrix(); // Aplica uma translação gl. Translatef(-35. 0 f, 0. 0 f); // Aplica uma rotação ao redor do eixo z gl. Rotatef(90. 0 f, 1. 0 f); // Altera a cor do desenho para preto gl. Color 3 f(0. 0 f, 0. 0 f); // Função da GLUT para fazer o desenho de um "torus" glut. Wire. Torus(7. 0, 14. 0, 20, 40); // Restaura a matriz de transformação corrente da pilha gl. Pop. Matrix();

O uso do gl. Push. Matrix() e gl. Pop. Matrix() // Guarda a matriz

O uso do gl. Push. Matrix() e gl. Pop. Matrix() // Guarda a matriz de transformação corrente na pilha gl. Push. Matrix(); // Aplica uma rotação ao redor do eixo x gl. Rotatef(90. 0 f, 1. 0 f); // Aplica uma translação gl. Translatef(-35. 0 f, 0. 0 f); // Altera a cor do desenho para cinza escuro gl. Color 3 f(0. 4 f, 0. 4 f); // Função da GLUT para fazer o desenho de um "torus" glut. Wire. Torus(7. 0, 14. 0, 20, 40); // Restaura a matriz de transformação corrente da pilha gl. Pop. Matrix(); // Guarda a matriz de transformação corrente na pilha

O uso do gl. Push. Matrix() e gl. Pop. Matrix() gl. Push. Matrix(); //

O uso do gl. Push. Matrix() e gl. Pop. Matrix() gl. Push. Matrix(); // Aplica uma translação gl. Translatef(35. 0 f, 0. 0 f); // Aplica uma rotação ao redor do eixo x gl. Rotatef(90. 0 f, 1. 0 f, 0. 0 f); // Altera a cor do desenho para cinza gl. Color 3 f(0. 6 f, 0. 6 f); // Função da GLUT para fazer o desenho de um "torus" glut. Wire. Torus(7. 0, 14. 0, 20, 40); // Restaura a matriz de transformação corrente da pilha gl. Pop. Matrix(); } // Executa os comandos Open. GL gl. Flush();

Tarefa • Desenhar vários objetos na Tela, contendo iluminação (e iterações com o mouse

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