Baixe o app para aproveitar ainda mais
Prévia do material em texto
Hierarquia de Transformações Geométricas Computação Gráfica Adailton José Alves da Cruz FACET/UFGD Hierarquia de transformações Transformações Geométricas 2D Agrupamento de objetos Propagação das transformações Relação de dependência entre as partes Dependência Hierarquia Hierarquia de transformações y4 x1 y1 y2 x2 Base Braço1 Braço2 Braço3 SRO - Primitiva Hierarquia de transformações Base Braço1 Braço2 Braço3 Hierarquia de transformações Base Braço1 Braço2 Braço3 Hierarquia de transformações y4 x1 y1 y2 x2 R2T1R3T3R4T4 Desenha Braço3 Desenha Base R1 Desenha Braço R1R2T1 DesenhaBraço2 Hierarquia de transformações em OpenGL OpenGL utiliza o conceito de Matriz Corrente Estrutura de Pilha permite guardar o estado atual da matriz de transformações As Funções glPushMatrix e glPopMatrix permitem delimitar o escopo das transformações Exemplo glMatrixMode(GL_MODELVIEW); glLoadIdentity( ); glPushMatrix(); glTranslatef(10,0.0,0.0); glPushMatrix(); glScalef(2.5f,2.5f,1.0f); desenhaBase( ); glPopMatrix(); glTranslatef(0.0f,1.5f,0.0f); glRotatef(30,0.0f,0.0f,1.0f); glScalef(1.5f,1.5f,1.0f); DesenhaBraco(); /* transformações do modelo*/ /* carrega a identidade como corrente */ /* Salva matriz corrente C0*/ /* translada em x*/ /* Salva matriz corrente C1 */ /* escala em x e y */ /* recupera a matriz corrente C1 */ /* translada em y */ /* roda em z */ /* escala em x e y */ Atividade 0 Braço1 Braço2 Mão Atividade 1 Base Braço1 Braço2 Mão Atividade 2 - modelagem Base Braço1 Braço2 Palma Base dos dedos Dedo esq Dedo dir Atividade 3 Movimento B B 1 Atribuir movimentos: • Base B - translação • Braço B1 - rotação • Braço B2 - rotação • Mão M - rotação • Dedo esq. E - translação • Dedo dir. D - translação Atividade 4 Colisão B B 1 Pegar e transportar peça: Pegar o bloco e transportá-lo para uma outra posição a critério do usuário Posição inicial Posição final
Compartilhar