MGattass Rotações e Quatérnios
MGattass Objetos compostos hierarquicamente
MGattass Hieraquia de movimentos
MGattass Transformações em 3D (translações e escalas) x y z txtx tyty tztz 1 y z 1 x = x y z x y z 1 0 sysy szsz y z 1 x = sxsx 0 0 0
MGattass Rotação em torno do eixo y x y z y z x y
MGattass Rotação em torno do eixo x x y z x
MGattass Rotação em torno do eixo z x y z z
MGattass Rotações em torno dos eixos cartesianos x y z x y z
MGattass Instanciação de objetos braço ante-braço x y z 1 1 1
MGattass Ordem das transformações x y R x y T x y R x y x y T (a) (b)
MGattass Composição com sistema local móvel x,x L y,y L xLxL yLyL TLTL x y p 2 = R T pp 1 = T p e p 2 = R p 1 x T R y xx yy p= R p e p 2 = T L p p 2 = R T p ou p2p2 x yLyL x y xLxL R p p p 2 = R T R -1 R p
MGattass Instâncias de objetos x2x2 y z2z2 xz y2y2 x4x4 y4y4 z4z4 x6x6 x1x1 y1y1 z1z1 x3x3 y3y3 z3z3 x5x5 z5z5 y5y5 d1d1 d2d2
MGattass x2x2 y z2z2 xz y2y2 x4x4 y4y4 z4z4 x1x1 y1y1 z1z1 x3x3 y3y3 z3z3 x5x5 z5z5 y5y5 d1d1 d2d2 baseI ante-braçoR y R z1 T y1 cotoveloR y R z1 T y1 T y2 braçoR y R z1 T y1 T y2 R z3 T y3 pulsoR y R z1 T y1 T y2 R z3 T y3 T y3 mãoR y R z1 T y1 T y2 R z3 T y3 T y3 R z5 OpenGL:
x2x2 y z2z2 xz y2y2 x4x4 y4y4 z4z4 x1x1 y1y1 z1z1 x3x3 y3y3 z3z3 x5x5 z5z5 y5y5 d1d1 d2d2 Desenha a base; Roda em y; Roda em z 1 ; Translada em y 1 de d 1 /2; Desenha o ante-braço; Translada em y 2 de d 1 /2; Desenha cotovelo; Roda em z 3 ; Translada em y 3 de d 2 /2; Desenha o braço; Translada em y 3 de d 2 /2; Desenha o pulso; Roda em z 5 ; Desenha a mão;
MGattass Hierarquia em árvore base braço direitobraço esquerdo
MGattass Hierarquia em árvore x5x5 y5y5 y6y6 y7y7 y8y8 y9y9 x6x6 x7x7 x8x8 x9x9 a b c d eef a palma base dos dedos dedo direitodedo esquerdo
y7y7 y8y8 y9y9 x7x7 x8x8 x9x9 a b c e ef void desenhaDedos(float b,float c, float e, float f ) { /* dedo esquerdo */ glPushMatrix(); /* Salva matriz corrente C 0 */ glTranslatef((f+e)/2,(b+c)/2,0.); /* C=CT esq */ glScalef(e,c,e); /* C=CS */ glutSolidCube(1.0); glPopMatrix(); /* Recupera da pilha C=C 0 */ /* dedo direito */ glPushMatrix(); /* Salva matriz corrente C 0 */ glTranslatef(-(f+e)/2,(b+c)/2,0.); /* C=CT dir */ glScalef(e,c,e); /* C=CS */ glutSolidCube(1.0); glPopMatrix(); /* Recupera da pilha C=C 0 */ }
MGattass Algebra da rotação em torno de um eixo unitário ê x y z
MGattass Rotação em torno de um eixo ê x y z
MGattass A coluna da matriz é a transformada dos vetores da base
MGattass Matriz da rotação em torno de um eixo ê x y z
MGattass Matriz de rotação em torno de um eixo
MGattass Demonstração de:
MGattass Transformações em 3D (rotação em torno de um eixo qualquer) x y z 1 m 12 m 22 m 32 0 m 13 m 23 m y z 1 x = m 11 m 21 m 31 0 x y z m 11 = e x 2 + cos (1- e x 2 ) m 12 = e x e y (1-cos ) - e z sen m 13 = e z e x (1-cos ) + e y sen m 21 = e x e y (1-cos ) + e z sen m 22 = e y 2 + cos (1- e y 2 ) m 23 = e y e z (1-cos ) - e x sen m 31 = e x e z (1-cos ) - e y sen m 32 = e y e z (1-cos )+ e x sen m 22 = e z 2 + cos (1- e z 2 )
MGattass Fórmula de Rodrigues 1
MGattass Fórmula de Rodrigues 2
MGattass Matriz de rotação em torno de um eixo ê que não passa pela origem x y z x y z p0p0 p0p0 x y z p0p0 M x y z p0p0
MGattass Interface para rotações tipo ArcBall
MGattass Rotação do ArcBall
MGattass Conservativo
MGattass 90° + 90° Complexidade da Rotação Giroscópio
MGattass Yaw-Pitch-Roll x z y - yaw - pitch - roll
MGattass Ângulos de Euler l Transforma x-y-z em x-y-z em 3 passos Rotação yaw de em torno eixo z Rotação pitch de em torno do eixo Rotação de em torno do eixo
MGattass Ângulos de Euler l Transforma x-y-z em x-y-z em 3 passos Rotação de em torno eixo z Rotação de em torno do eixo
MGattass x z y
Parametrização de rotações: Ângulos de Euler x x y z y x y z z x y z
MGattass Ângulos de Euler Gimbal lock
MGattass Ângulos de Euler Gimbal lock x x y z y =90 o x y z z x y z
Interpolação não gera posições entre
MGattass Quatérnios
MGattass Soma e multiplicação por escalar
MGattass Produto de dois quatérnios
MGattass Produto de dois quatérnios(cont.)
MGattass Conjugado, normas e produto interno conjugado de um quatérnio norma de um quatérnio produto interno de dois quatérnios norma euclidiana
MGattass Quatérnio inverso e unitário inverso de um quatérnio unitário de um quatérnio
MGattass Quatérnios e rotações Dada uma rotação definida por um eixo ê e um ângulo construímos o quatérnio unitário: Dado um ponto qualquer p do R 3 construímos o quatérnio: Calculamos o produto:
MGattass Demostração …
MGattass Composição de rotações seguida de
MGattass Composição de rotações
Exemplo
MGattass Interpolação de quatérnios não é unitário não representa rotação
MGattass Interpolação de quatérnios (1-t) t
MGattass
Quatérnios e matrizes
MGattass Matrizes e quatérnios
MGattass Matriz de rotação em torno de um eixo
MGattass Demonstração de
MGattass Transformação de normais x y x y s x =0.5 x y
MGattass FIM