34
Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Embed Size (px)

Citation preview

Page 1: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Computação GráficaGeometria de Transformações

Parte II: Coordenadase Transformações

Homogêneas

Luiz M. G. Gonçalves

Page 2: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Relações espaciais• Representação em relação a um frame (sistema de coordenadas)• P (X,Y,Z)

Page 3: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Orientação

Page 4: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Orientação

Page 5: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Matriz de orientação

Page 6: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Propriedade elementar (unitária)

Page 7: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Juntando orientação e posição

Page 8: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Coordenadas Homogêneas

Page 9: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Coordenadas Homogêneas

• Translação não é linear. Como representar em forma de matriz?

• Adiciona coordenada extra a cada vetor

P = (x, y, z, 1) ou P = X Y Z 1

• Coordenada extra é chamada de homogênea (ou w)

Page 10: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Problema da translação

• Translação não é linear, precisa de um truque para poder representar p/ matriz.– Adiciona zeros e 1 à última linha da matriz

x´ 1 0 0 tx xy´ = 0 1 0 ty y

z´ 0 0 1 tz z1 0 0 0 1 1

• Transformação denominada homogênea

Page 11: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Juntar rotação e translação

Page 12: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Transformação Homogênea

Page 13: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves
Page 14: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Translação pura

Page 15: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Transformações Homogêneas 3D

• São muito similar ao 2D

• Coordenadas homogêneas requerem matrizes 4x4

• Matrizes de translação e escala são:

Page 16: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Representação da rotaçãoRepresentação da rotaçao é mais complexa

Page 17: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Rotação 3D• Rotação é um pouco mais complicado

• Sistema de coordenadas de mão direita ou esquerda afeta direção de rotação

• Sistema de mão direita

• Sistema de mão esquerda

x

y

z

x

y z

Page 18: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Produto Cruzado (Vetorial)• Eixo Z é determinado a partir dos eixos X e Y pelo

produto vetorial

• Produto vetorial segue regra da mão direita em um sistema de mão direita e regra da mão esquerda em um sistema de mão esquerda

• Estaremos trabalhando quase sempre com sistema de mão direita

Page 19: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Ângulos de Euler para rotações 3D

• Ângulos de Euler: 3 rotações em torno de cada eixo, porém:– Interpolação de ângulos para animação

produz movimentos bizarros– Rotações dependem da ordem, e não

existem convenções para que ordem usar

• Usado amplamente, devido à simplicidade

• Conhecidos como row, pitch, yaw

Page 20: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Roll (x), Pitch (y), Yaw (z)

Page 21: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Rotação em torno de cada eixo

Page 22: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Generalização da Rotação

Page 23: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Rotação arbitrária• Dado um eixo ou direção (x,y,z) e um ângulo ,

a matriz de rotação fica:

X

Y

Z

(x,y,z)

(Px’,Py’,Pz’)

(Px,Py,Pz)

-

Page 24: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Exemplo de rotação + translação

Exemplo: Seja o ponto BP = (3,7,0), transforme-o no ponto AP rotacionando de 30 graus em torno de Z e transladando de 10 unidades ao longo de X e de 5 unidades ao longo de Y.

Page 25: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Exemplo: continuação

Page 26: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Problema da comutatividade

• Translação seguida de rotação é diferente de rotação seguida de translação

Page 27: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Transformações em cadeia

Page 28: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Seqüência de transformações• Mesmo conjunto aplicado a vários pontos

• Combinar as matrizes é desprezível

• Reduzir a seqüência numa única matriz

Page 29: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Colapsando transformações• Considere a seqüência p’=ABCDp

• Multiplicação não é comutativa (ordem)

• Multiplicação é associativa– Da esquerda para a direita (pré-multiplicação)– Direita para a esquerda (pós-multiplicação)

• ABCD = (((AB)C)D) = (A(B(CD)))

• Troque cada matriz pelo produto do par

Page 30: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Colapsando transformações• Mesmo resultado:

pré-multiplicação pós-multiplicação

Page 31: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Implementando seqüências• OpenGL: rotacionar do ângulo theta em

torno do eixo z, mas no ponto (x,y,0)– glLoadIdentity();– glTranslatef(x,y,0);– glRotatef(theta, 0,0,1);– glTranslatef(-x,-y,0);

• Pense ao contrário: última transformação na cadeia é glTranslatef(x,y,0), que foi a transformação primeira aplicada ao ponto.

Page 32: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Convenção vetor-coluna• Transformação por matriz x vetor

• A(B(C(D(x)))) = produto matriz-vetor dado pela seqüência ABCDx

Page 33: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Convenção vetor-linha• Transformação por vetor x matriz

• Todas as matrizes devem ser transpostas

• Seqüência ABCDx transposta é xtDtCtBtAt

• OpenGL usa esta regra

Page 34: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves

Invertendo a transf. homogênea