transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não...
TRANSCRIPT
![Page 1: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/1.jpg)
DIM102 1
Transformações
35T56 – Sala 3E1Bruno Motta de CarvalhoDIMAp – Sala 15 – Ramal 227
![Page 2: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/2.jpg)
DIM1022
Transformações
Porquê usar transformações?Criar objetos em sistemas de
coordenadas convenientes Reusar formas básicas várias vezesModelagem hierárquicaIndependem do sistema utilizado
T
![Page 3: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/3.jpg)
DIM1023
Transformações 2D
Translação• Adição dos componentes dos
vetores v’ = v + t onde
ex’ = x + dx y’ = y + dy
• Movendo polígonos: translação de vértices (vetores) e redesenho de linhas
• Preserva comprimentos (isométrico)
• Preserva ânguloss (conformal)• Não é uma combinação linear
dx = 2dy = 3
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
12
44
=
=
=
dydx
tyx
vyx
v ,''
',
TranslaçãoT
![Page 4: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/4.jpg)
DIM1024
Transformações 2D
Scaling• Multiplicação dos componentes
dos vetores por um escalar • v’ = Sv onde
and
• Não preserva comprimentos • Não preserva ângulos (exceto
quando o scaling é uniforme)
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
12
13
26
29
23
==
y
x
ss
=
=
''
',yx
vyx
v
=
y
x
ss
S0
0
![Page 5: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/5.jpg)
DIM1025
Transformações 2D
Rotação• Rodar um ponto P=(x,y) de um
ângulo relativamente à origem θsignifica encontrar outro ponto Q=(x´,y´) sobre uma circunferência centrada na origem que passa pelos dois pontos.
=
=
''',
yxv
yxv
![Page 6: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/6.jpg)
DIM1026
Transformações 2D
=
=
''',
yxv
yxv
Rotação• Rodar um ponto P=(x,y) de um
ângulo relativamente à origem θsignifica encontrar outro ponto Q=(x´,y´) sobre uma circunferência centrada na origem que passa pelos dois pontos.
![Page 7: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/7.jpg)
DIM1027
Transformações 2D
Rotação• Rotação dos vetores por um
ângulo θ v’ = Rθ v where
e x’ = x cos θ – y sin θ
y’ = x sin θ + y cos θ• Preserva comprimentos e ângulos• Prova usa fórmulas de soma de
ângulos • cos(α+β)= cosα cosβ sinα sinβ sin(α+β)= sinα cosβ + sinβ cosα
6πθ =
Y
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
θ
=
=
''
',yx
vyx
v
−=
θθθθ
θ cossinsincos
R
![Page 8: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/8.jpg)
DIM1028
Transformações 2D
Shear• Pega e um objeto e
entorta para o lado
• Quadrados se tornam paralelogramas – coordenadas x entortam para a direita, enquanto coordenadas y permanecem as mesmas
=
101 xsh
ShearθY
X 0
1
1
2
2
3 4 5 6 7 8 9 10
3
4
5
6
θ
4πθ =
![Page 9: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/9.jpg)
DIM1029
Coordenadas Homogêneas Matriz 2x2 não pode ser usada para composição porque
translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que as três
operações sejam expressas de maneira homogênea, permitindo a composição de operações usandose multiplicação de matrizes 3x3
=
≠≠→
wy
wxPyxP
wwyxPwwwywxPyxP
dd
h
hd
','),(
0),,','(0),,,(),(
22
2
![Page 10: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/10.jpg)
DIM10210
Coordenadas Homogêneas
• P2d é a interseção da linha determinada por Ph com o plano w = 1
• Logo, um número infinito de pontos correspondem a (x, y, 1): eles constituem a linha (tx, ty, tw)
P2d (x/w,y/w,1)
Ph (x,y,w)
Y
X
W
1
![Page 11: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/11.jpg)
DIM10211
Coordenadas Homogêneas Para pontos escritos em coordenadas homogêneas
[x y 1]T , translação, scaling and rotação relativas a origem são representadas por:
![Page 12: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/12.jpg)
DIM10212
Coordenadas Homogêneas
Considere a matriz de rotação
As colunas e linhas da submatriz 2X2:
São vetores unitários (comprimento=1) São perpendiculares (produto interno=0)
Estas propriedades das linhas e colunas preservam comprimentos e ângulos da geometria original. Deste modo, essa matriz é chamada de transformação de corpo rígido (rigidbody)
−=
1000cossin0sincos
)( φφφφ
φR
![Page 13: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/13.jpg)
DIM10213
Composição de Transformações 2D Como fazer quando um objeto não está centralizado na
origem? Translação para a origem, seguida de rotação e/ou
scaling, e translação inversa Logo, é mais eficente a composição de várias
transformações Translação, scaling e rotação são representados por:
translation:
scale:
rotation:
v’ = v + t
v’ = Sv
v’ = Rv
![Page 14: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/14.jpg)
DIM10214
Composição de Transformações 2D
Com a matriz T, podese evitar translações indesejáveis introduzidas quando nós usamos scaling ou rotacionamos um objeto não centrado na origem. Solução: translação do objeto para a origem, seguida de scaling ou rotação, e translação inversa
HdydxTRdydxTHdydxTRHdydxTHHouse ),()(),(),()(),()( θθ −−
![Page 15: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/15.jpg)
DIM10215
Composição de Transformações 2D Exemplo: Translação + Rotação +
Translação
−−+−−
=
−−
−
100sin)cos1(cossinsin)cos1(sincos
1001001
1000cossin0sincos
1001001
11
11
1
1
1
1
θθθθθθθθ
θθθθ
xyyx
yx
yx
![Page 16: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/16.jpg)
DIM10216
Transformação JanelaparaViewport
+−−−
−−
+−−−
−−
=
−−
−−
−−
100)()(
)()(0
)()(0
)()(
1001001
100
0)()(0
00)()(
1001001
minminmax
minmaxmin
minmax
minmax
minminmax
minmaxmin
minmax
minmax
min
min
minmax
minmax
minmax
minmax
min
min
vyyvvy
yyvv
uxxuux
xxuu
vu
yyvv
xxuu
vu
![Page 17: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/17.jpg)
DIM10217
Transformações 3D• Sistema de coordenadas destro
(righthanded)• Rotações positivas são
definidas tais que, quanto olhando de um eixo positivo para a origem, uma rotação de 90º transforma um eixo positivo em outro
• Eixo Direção de rot. Pos.x y para zy z para xz x para y
x
y
z
![Page 18: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/18.jpg)
DIM10218
Transformações 3D
1000100
1001
dzdyshdxsh
y
x
1000000000000
z
y
x
ss
s
Shear SHXY
Scaling
1000100010001
dzdydx
Translação
−
10000cossin00sincos00001
θθθθ
−10000cos0sin00100sin0cos
θθ
θθ
−
1000010000cossin00sincos
θθθθ
Rotação – x (yaw)
Rotação – y (pitch)
Rotação – z (roll)
![Page 19: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/19.jpg)
DIM10219
Quatérnios Motivação:
![Page 20: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/20.jpg)
DIM10220
Quatérnios Motivação:
Dificuldade de usar rotação com a notação de Euler. Dificuldade de fazer uma interpolação entre as rotações
A utilização de quatérnios para implementação de rotações Garante uma rotação direta e firme entre duas
orientações Define movimentos que são independentes de
qualquer sistemas de coordenadas A combinação de quatérnios é mais eficiente que
multiplicação de matrizes
![Page 21: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/21.jpg)
DIM10221
Quatérnios William Hamilton, em 1843 Eles representam uma orientação por um ângulo de
rotação antihorário (θ) ao redor de um vetor (V) arbitrário Fazem parte da classe de números hipercomplexos
![Page 22: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/22.jpg)
DIM10222
Quatérnios
• Podem ser pensados como pontos em uma esfera 4D ou vetores 3D com uma rotação associada
• Algumas vezes é representado por s (rotação) e v (eixo de rotação)
=
=vs
qqqq
q
4
3
2
111222
−=−===
kjikji
![Page 23: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/23.jpg)
DIM10223
Quatérnios
• Adição e subtração funcionam com em números complexos
• Multiplicação de quatérnios é associativa mas não é comutativa
• Complexo conjugado de um quatérnio
![Page 24: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/24.jpg)
DIM10224
Quatérnios
![Page 25: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/25.jpg)
DIM10225
Quatérnios
• Produto quatérnioconjugado
• Norma• Inversa multiplicativa
23
22
21
2* vvvsqq +++=⋅
*23
22
21
2||)(norma qqvvvsqq ⋅=+++==
![Page 26: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/26.jpg)
DIM10226
Quatérnios
• Rotação (sistema destro/righthanded)
oantihorárisentido,
horáriosentido,*
'
*'
qvqv
qvqv
q
q
⋅⋅=
⋅⋅=
qvq /)2/sin()2/cos( θθ +=
![Page 27: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/27.jpg)
DIM10227
Quatérnios Vantagens:
Não exibe singularidades na sua parametrização Interpolação consistente e suave de orientações Composição simples e eficiente de rotações
Desvantagens: Cada orientação é representada por dois quatérnios Representa orientações e não rotações (0º ao redor de
V é o mesmo quatérnio que 360º ao redor de V) Implementa somente rotações. Matrizes são utilizadas
para implementar as outras transformações
![Page 28: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/28.jpg)
DIM10228
Grafos de Cena Cenas 3D são armazenadas em uma grafo direcionado
acíclico (DAG) chamado de grafo de cena (scene graph) Open Inventor (TGS) Open Scene Graph Java3D™ (Sun) X3D ™ (VRML ™) WorldToolKit ™ (Sense8)
• Formatos típicos de grafos de cena (existem centenas de pacotes!)
– Objetos (cubos, esferas, cones, poliédros, etc.) com valores padrão (por exmplo, localizados na origem com volume prédefinido) armazenados como nós do grafo
– Atributos (cor, mapa de textura, etc.) e transformações também são nós grafos de cena
![Page 29: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/29.jpg)
DIM10229
Grafos de CenaROBOT
upper body lower body
head trunk arm
stanchion base
2. We transform them
3. To make subgroups
4. Transform subgroups
5. To get final scene
![Page 30: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/30.jpg)
DIM10230
Grafos de Cena Geralmente os nós de transformação contém
pelo menos uma matriz que faz a transformação; adicionalmente eles podem conter parâmetros de transformação individuais
Para se determinar a matriz de transformação composta (CTM) final para um nó objeto devese compor todas as transformações dos pais dos nós durante travessias do grafo Como isso é feito varia de pacote a pacote!
![Page 31: Transformações - dimap.ufrn.brdimap.ufrn.br/~motta/dim102/transformacoes.pdf · translação não é expressa como multiplicação de matrizes Coordenadas homogêneas permitem que](https://reader031.vdocuments.site/reader031/viewer/2022031303/5be907a709d3f2ce778c9907/html5/thumbnails/31.jpg)
DIM10231
Grafos de Cena• Um examplo: Para o1, CTM = m1
Para o2, CTM = m2* m3 Para o3, CTM = m2* m4* m5 Para um vértice v em o3, sua posição no sistema de coordenadas do mundo (raiz do grafo) é:CTM v = (m2*m4*m5)v
m1 m2
m3 m4
o1
o2
o3
g1
g2
g: nós de grupo
m: nós de matrizes de transformação
o: nós objeto