1 / 9

Animações Independentes na Mesma Cena

Animações Independentes na Mesma Cena. O uso do glPushMatrix () e glPopMatrix (). 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.

joshwa
Download Presentation

Animações Independentes na Mesma Cena

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AnimaçõesIndependentesnaMesmaCena

  2. O uso do glPushMatrix() e glPopMatrix() • Vamossuporquevocêtenhadoisobjetosnacena: Vamossuporquevocêqueira, aomesmo tempo, transladar o rotacionar o quadrado e transladar o circulo

  3. O uso do glPushMatrix() e glPopMatrix() • A cadachamada da calback de desenho, vocêempilha a matriz de tranformação • glPushMatrix() // empilhaumamatriz de transformaçãoatual • Emseguida, fazumarotação (glRotate …), desenha o quadrado com a rotaçãoaplicada) • glPopMatrix() // desempilhou a matrizquetinha antes de glPush..

  4. O uso do glPushMatrix() e glPopMatrix() • glPushMatrix() // empilhaumamatriz de transformaçãoatual • Emseguida, fazumaTranslação (glTranslate …), desenha o circulo com a Translaçãoaplicada) • glPopMatrix() // desempilhou a matrizquetinha antes de glPush..

  5. O uso do glPushMatrix() e glPopMatrix() • Vamossuporquevocêtenhadoisobjetosnacena: Vamossuporquevocêqueira, aomesmo 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. O uso do glPushMatrix() e glPopMatrix() // 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

  8. O uso do glPushMatrix() e glPopMatrix() 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(); }

  9. Tarefa • DesenharváriosobjetosnaTela, contendoiluminação(e iterações com o mouse e teclado, casoqueira) e transformaçõesgeométricaindependentesparacadaobjeto

More Related