computação gráfica geometria de transformações parte ii: coordenadas e transformações...
TRANSCRIPT
![Page 1: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/13.jpg)
![Page 14: Computação Gráfica Geometria de Transformações Parte II: Coordenadas e Transformações Homogêneas Luiz M. G. Gonçalves](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/19.jpg)
Â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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.site/reader036/viewer/2022062623/552fc0fe497959413d8bb5aa/html5/thumbnails/34.jpg)
Invertendo a transf. homogênea