• Nenhum resultado encontrado

Sistemas de Coordenadas

N/A
N/A
Protected

Academic year: 2021

Share "Sistemas de Coordenadas"

Copied!
21
0
0

Texto

(1)

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Transformações

Alberto B. Raposo

abraposo@tecgraf.puc-rio.br

http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Alberto Raposo – PUC-Rio

Sistemas de Coordenadas

• Objetos em Computação Gráfica possuem descrições

numéricas (modelos) que caracterizam suas formas e

dimensões.

• Esses números se referem a um sistema de coordenadas,

normalmente o sistema Cartesiano de coordenadas: x, y e

z.

• Em alguns casos, precisamos de mais de um sistema de

coordenadas:

– Um sistema local para descrever partes individuais de uma

máquina, por exemplo, que pode ser montada especificando-se a

relação de cada sistema local das várias peças.

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Transformações

• Em alguns casos, objetos exibem simetrias, de modo

que apenas parte deles precisa ser descrita, pois o resto

pode ser construído por reflexão, rotação e/ou

translação do pedaço original.

• Um projetista pode querer visualizar um objeto sob

vários pontos de vista, rotacionando-o ou movendo

uma câmera virtual.

• Em animação, um ou mais objetos podem precisar se

mover em relação ao outro, de modo que seus sistemas

de coordenadas locais devam ser transladados e

rotacionados ao longo da animação.

John Dingliana, 2004

Alberto Raposo – PUC-Rio

etc...

Exemplo 1

• Partes do objeto

definidas em sistemas

de coordenadas locais:

• Objeto “montado” por

meio de transformação

das partes

constituintes:

(2)

Alberto Raposo – PUC-Rio

5 etapas de uma animação de um cubo girando

Exemplo 2

• A cada quadro da animação, o objeto é transformado (rotação,

nesse caso).

• O objeto também poderia ser transformado pela mudança de

tamanho (escalamento), sua forma (deformação), ou sua

localização (translação).

• Outros efeitos de animação são obtidos sem alterar o objeto em

si, mas a forma como ele é visualizado (transformação window

to viewport) a cada quadro (por exemplo, um zoom).

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Transformações

• Há 2 formas de se enxergar uma transformação

– Uma Transformação de Objeto altera as coordenadas de

cada ponto de acordo com alguma regra, mantendo o

sistema de coordenadas inalterado.

– Uma Transformação de Coordenadas produz um sistema

de coordenadas diferente, e então representa todos os

pontos originais nesse novo sistema.

• Cada maneira tem suas vantagem, e são intimamente

relacionadas.

John Dingliana, 2004

Alberto Raposo – PUC-Rio

1,1

.4, 2

TRANSFORMAÇÃO DE OBJETO

(1,1)

(1,1)

TRANSFORMAÇÃO DE COORDENADAS

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Classes de Transformações

• Euclidianas / Corpos Rígidos

• de Similaridade

• Lineares

• Afins

• Projetivas

(3)

Alberto Raposo – PUC-Rio

Transformações Euclidianas

• Preservam distâncias

• Preservam ângulos

Translação

Rotação

Corpos Rígidos / Euclidianas

Identidade

Identidade

Translação

Rotação

MIT EECS 6.837,

Durand and Cutler Alberto Raposo – PUC-Rio

Transformações de Similaridade

• Preservam ângulos

Translação

Rotação

Euclidianas

Similaridades

Escalamento

Isotrópico

Identidade

MIT EECS 6.837, Durand and Cutler

Escalamento

Isotrópico

Alberto Raposo – PUC-Rio

Transformações Lineares

Translação

Rotação

Euclidianas

Linear

Similaridades

Escalaento

Isotrópico

Identidade

Escalamento

Shear

Reflexão

Escalamento

Reflexão

Shear

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio

Transformações Lineares

• L(p + q) = L(p) + L(q)

• L(ap) = a L(p)

MIT EECS 6.837, Durand and Cutler

(4)

Alberto Raposo – PUC-Rio

Transformações Afins

• Preservam linhas

paralelas

Afins

Translação

Rotação

Euclidianas

Linear

Similaridades

Escalaento

Isotrópico

Identidade

Escalamento

Shear

Reflexão

Alberto Raposo – PUC-Rio

Transformações

Projetivas

• preservam linhas

Projetivas

Perspectiva

Afins

Translação

Rotação

Euclidianas

Linear

Similaridades

Escalaento

Isotrópico

Identidade

Escalamento

Shear

Reflexão

Alberto Raposo – PUC-Rio

Perpectiva

Perspectiva é um dos fatores

que dá “aparência 3D” às cenas

Alberto Raposo – PUC-Rio

Transformações 2D

Escalamento

Rotação

Translação

Escalamento

Translação

x

y

Coordenadas do mundo

Coordenadas

de modelagem

D. Brogan, Univ. of Virginia

(5)

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadas

de modelagem

Localização

inicial em

(0, 0) com

eixos x e y

alinhados

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadas

de modelagem

Scale .3, .3

Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadas

de modelagem

Scale .3, .3

Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadas

de modelagem

Scale .3, .3

Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

(6)

Alberto Raposo – PUC-Rio

VRML: Nó Transform

Alberto Raposo – PUC-Rio

Exemplo em VRML

The Annotated VRML Reference

Alberto Raposo – PUC-Rio

Exemplo em VRML

Alberto Raposo – PUC-Rio

(7)

Alberto Raposo – PUC-Rio

Exemplo

em X3D

Alberto Raposo – PUC-Rio

A ordem das transformações faz

diferença!

Alberto Raposo – PUC-Rio

Escalamento

• Escalar

uma coordenada significa multiplicar cada

um de seus componentes por um valor escalar

• Escalamento isotrópico

significa que esse valor

escalar é o mesmo para todos os componentes

× 2

D. Brogan,

Univ. of Virginia Alberto Raposo – PUC-Rio

• Escalamento não-isotrópico

: valores escalares

diferentes por componente:

• Como representar o escalamento na forma de

matrizes?

Escalamento

X × 2,

Y × 0.5

D. Brogan, Univ. of Virginia

(8)

Alberto Raposo – PUC-Rio

Escalamento

• Operação de escalamento:

• Na forma matricial:

=

by

ax

y

x

'

'

=

y

x

b

a

y

x

0

0

'

'

Matriz de escalamento

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Rotação 2D

cos (

θ φ

+

) cos

=

( )

θ

cos

( )

φ

sin

( )

θ

sin

( )

φ

sin (

θ φ

+

) sin

=

( )

θ

cos

( )

φ

+

cos

( )

θ

sin

( )

φ

P

Q

R

P

X

P

Y

φ

θ

[1]

[2]

[3]

[4]

[1]

Q

x

=

R

cos

(

θ

)

cos

(

φ

)

R

sin

(

θ

)

sin

(

φ

)

Substituindo de [3] e [4]…

)

(

)

(

θ

sin

θ

cos

P

y

x

P

x

Q

=

Similarmente, a partir de [2]…

)

(

)

(

θ

sin

θ

cos

P

x

y

P

y

Q

=

+

)

Rcos(

Q

X

=

θ

+

φ

)

Rsin(

Q

y

=

θ +

φ

)

(

cos

R

P

X

=

φ

)

(

sin

R

P

y

=

φ

John Dingliana, 2004

Alberto Raposo – PUC-Rio

Rotação 2D

θ

(x, y)

(x’, y’)

x’ = x cos(θ) - y sin(θ)

y’ = x sin(θ) + y cos(θ)

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Rotação 2D

• Na forma matricial:

• Embora sin(θ) e cos(θ) sejam funções

não-lineares de θ,

– x’ é combinação linear de x e y

– y’ é combinação linear de x e y

( )

( )

( )

( )

=

y

x

y

x

θ

θ

θ

θ

cos

sin

sin

cos

'

'

D. Brogan, Univ. of Virginia

(9)

Alberto Raposo – PUC-Rio

Translação 2D

+

+

+

=

y x y x

t

y

t

x

t

t

y

x

y

x

'

'

y

x

x

y

=

y x

t

t

t

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Transformações 2D Básicas

• Translação:

– x’ = x + t

x

– y’ = y + t

y

• Escalamento:

– x’ = x * s

x

– y’ = y * s

y

• Rotação:

– x’ = x*cosΘ - y*sinΘ

– y’ = x*sinΘ + y*cosΘ

Podem ser combinadas

com álgebra simples

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D Básicas

• Translação:

– x’ = x + t

x

– y’ = y + t

y

• Escalamento:

– x’ = x * s

x

– y’ = y * s

y

• Rotação:

– x’ = x*cosΘ - y*sinΘ

– y’ = x*sinΘ + y*cosΘ

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

• Translação:

– x’ = x + t

x

– y’ = y + t

y

• Escalamento:

– x’ = x

* s

x

– y’ = y

* s

y

• Rotação:

– x’ = x*cosΘ - y*sinΘ

– y’ = x*sinΘ + y*cosΘ

x’ = x

*s

x

y’ = y

*s

y

(x,y)

(x’,y’)

Transformações 2D Básicas

D. Brogan, Univ. of Virginia

(10)

Alberto Raposo – PUC-Rio

x’ = (x*s

x

)

*cosΘ -

(y*s

y

)

* sinΘ

y’ = (x*s

x

)

* sinΘ +

(y*s

y

)

* cosΘ

(x’,y’)

• Translação:

– x’ = x + t

x

– y’ = y + t

y

• Escalamento:

– x’ = x * s

x

– y’ = y * s

y

• Rotação:

– x’ = x

*cosΘ

- y*sinΘ

– y’ = x

*sinΘ

+ y

*cosΘ

D. Brogan, Univ. of Virginia

Transformações 2D Básicas

Alberto Raposo – PUC-Rio

• Translação:

– x’ = x

+ t

x

– y’ = y

+ t

y

• Escalamento:

– x’ = x * s

x

– y’ = y * s

y

• Rotação:

– x’ = x*cosΘ - y*sinΘ

– y’ = x*sinΘ + y*cosΘ

x’ = ((x*s

x

)*cosΘ - (y*s

y

)*sinΘ)

+ t

x

y’ = ((x*s

x

)*sinΘ + (y*s

y

)*cosΘ)

+ t

y

(x’,y’)

D. Brogan, Univ. of Virginia

Transformações 2D Básicas

Alberto Raposo – PUC-Rio

Representação Matricial

• Representar transformação 2D por uma

matriz

• Multiplicar matriz por vetor-coluna

⇔ aplicar transformação a um ponto









=





y

x

d

c

b

a

y

x

'

'





d

c

b

a

dy

cx

y

by

ax

x

+

=

+

=

'

'

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Representação Matricial

• Transformações são combinadas por

multiplicação de matrizes

















=





y

x

l

k

j

i

h

g

f

e

d

c

b

a

y

x

'

'

Matrizes são uma forma conveniente e eficiente

de representar uma seqüência de transformações

D. Brogan, Univ. of Virginia

(11)

Alberto Raposo – PUC-Rio

Produto de Matrizes

=

=

q k kj ik ij

a

b

c

1

=

=

qm q q m m nq n n q q

b

b

b

b

b

b

b

b

b

a

a

a

a

a

a

a

a

a

L

M

O

M

M

L

L

L

M

O

M

M

L

L

2 1 2 22 21 1 12 11 2 1 2 22 21 1 12 11

AB

C

            = 1 0 0 0 1 0 0 0 1 O M L I

neutro:

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Matrizes 2x2

• Que transformações planares podem ser

representadas com uma matriz 2x2?

Identidade 2D?

y

y

x

x

=

=

'

'









=





y

x

y

x

1

0

0

1

'

'

Escalemento 2D em torno de (0,0)?

y

s

y

x

s

x

y

x

*

'

*

'

=

=

=

y

x

s

s

y

x

y

x

0

0

'

'

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Matrizes 2x2

• Que transformações planares podem ser

representadas com uma matriz 2x2?

D. Brogan, Univ. of Virginia

Rotação 2D em torno de (0,0)?

y

x

y

x

y

x

*

cos

*

sin

'

cos

*

sin

*

'

Θ

+

Θ

=

Θ

Θ

=

Θ

Θ

Θ

Θ

=

y

x

y

x

cos

sin

sin

cos

'

'

Alberto Raposo – PUC-Rio

Matrizes 2x2

• Que transformações planares podem ser

representadas com uma matriz 2x2?

D. Brogan, Univ. of Virginia

Espelhamento 2D em torno de Y?

y

y

x

x

=

=

'

'









−

=





y

x

y

x

1

0

1

0

'

'

Espelhamento 2D em torno de (0,0)?

y

y

x

x

=

=

'

'









=





y

x

y

x

1

0

1

0

'

'

(12)

Alberto Raposo – PUC-Rio

Matrizes 2x2

• Que transformações planares podem ser

representadas com uma matriz 2x2?

D. Brogan, Univ. of Virginia

Translação 2D?

y x

t

y

y

t

x

x

+

=

+

=

'

'

NÃO!

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

• Como representar uma translação como

matriz 3x3?

y x

t

y

y

t

x

x

+

=

+

=

'

'

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

•Coordenadas homogêneas

– representam

coordenadas em 2

dimensões com vetor 3





1

homogêneas

coord.

y

x

y

x

• Coordenadas Homogêneas parecem pouco

intuitivas, mas elas simplificam muito as

operações gráficas

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

• Como representar uma translação como

matriz 3x3?

y x

t

y

y

t

x

x

+

=

+

=

'

'

Resp: Usando a terceira

coluna da matriz

=

1

0

0

1

0

0

1

y

x

t

t

Translação

D. Brogan, Univ. of Virginia

(13)

Alberto Raposo – PUC-Rio

Translação

•Exemplo

+

+

=

=

1

1

1

0

0

1

0

0

1

1

'

'

y x y x

t

y

t

x

y

x

t

t

y

x

t

x

= 2

t

y

= 1

•Coordenadas Homogêneas

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

• Coloca uma 3a coordenada para cada ponto 3D

– (x, y, w) representa um ponto em (x/w, y/w)

– (x, y, 0) representa um ponto no infinito

– (0, 0, 0) não é permitido

Sistema conveniente para

representar muitas

transformações úteis em

CG

1

2

1

2

(2,1,1) or (4,2,2) or (6,3,3)

x

y

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D Básicas

• Representação em matrizes 3x3

Θ

Θ

Θ

Θ

=

1

1

0

0

0

cos

sin

0

sin

cos

1

'

'

y

x

y

x

=

1

1

0

0

1

0

0

1

1

'

'

y

x

t

t

y

x

y x

=

1

1

0

0

0

1

0

1

1

'

'

y

x

sh

sh

y

x

y x

Translação

Rotação

Cisalhamento (Shear)

=

1

1

0

0

0

0

0

0

1

'

'

y

x

s

s

y

x

y x

Escalamento

Alberto Raposo – PUC-Rio

Cisalhamento (Shear)

y

x

sh

y

y

sh

x

x

y x

+

=

+

=

*

'

*

'

x

y

x

y

γ





=

 +

=





1

1

0

0

1

0

0

tan

0

1

1

tan

1

'

'

y

x

y

y

x

y

x

γ

γ

M. Gattass, PUC-Rio

(14)

Alberto Raposo – PUC-Rio

Concatenação de Transformações

x y x y x y x y x y x y

T

1

R

1

E

R

2

T

2

P’= T

2

R

2

E R

1

T

1

P

P’= T

2

R

2

E R

1

T

1

P

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Composição de Matrizes

• Transformações podem ser combinadas pela

multiplicação de matrizes

Θ

Θ

Θ

Θ

=

w

y

x

sy

sx

ty

tx

w

y

x

1

0

0

0

0

0

0

1

0

0

0

cos

sin

0

sin

cos

1

0

0

1

0

0

1

'

'

'

p’ = T(t

x

,t

y

) R(Θ) S(s

x

,s

y

)

p

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Composição de Matrizes

• Atenção: ordem das transformações faz

diferença

– Multiplicação de matrizes não é comutativa

p’ = T * R * S * p

“Global”

“Local”

Alberto Raposo – PUC-Rio

Ordem das Transformações

x

y





=

y

x

p

R

x

y





=

2 2 2

y

x

p

T

x

y





=

1 1 1

y

x

p

R

x

y





=

y

x

1

p

x

y





=

2 2 2

y

x

p

T

(a)

(b)

M. Gattass, PUC-Rio

(15)

Alberto Raposo – PUC-Rio

Ordem das Transformações

• Ex: rotacionar segmento em 45 graus em

torno da extremidade a

a

a

Resultado esperado

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Ordem das Transformações

• Erro: aplicar a rotação de 45

o

, R(45), afeta as duas

extremidades

– Pode-se tentar fazer a rotação e depois retornar o ponto

a

à sua posição original, mas quanto ele precisaria ser

transladado?

Errado!

R(45)

a

a

Correto

T(-3) R(45) T(3)

a

D. Brogan, Univ. of Virginia

Como trazer o ponto a de volta à posição original??

?

Alberto Raposo – PUC-Rio

Ordem das Transformações

Correto: isolar ponto a dos efeitos

da rotação

1.

Transladar a linha para colocar a na origem: T (-3)

2.

Rotacionar linha em 45

o

: R(45)

3.

Transladar a de volta: T(3)

a

a

a

a

D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio

Composição de Matrizes

=

1

'

'

1

1

0

0

1

0

0

0

3

1

1

0

0

45

)

cos(

45

)

0

sin(

45

)

sin(

45

)

0

cos(

1

0

0

1

0

0

0

3

1

y x y x

a

a

a

a

T(3) R(45) T(-3)

(16)

Alberto Raposo – PUC-Rio

Composição de Matrizes

•Depois de ordenar as matrizes corretamente:

– Multiplicá-las

– Guardar resultado em uma só matriz

– Usar essa matriz para realizar a transformação

composta em cada um dos pontos que definem o

objeto transformado (vértices, por exemplo)



Todos os vértices podem ser transformados

com uma simples multiplicação de vetor por

matriz.

Alberto Raposo – PUC-Rio

Exercício 2D

• Considere o triângulo com os seguintes

vértices em coordenadas

homogêneas

– Rotacione o triângulo

de 90

o

(sentido

anti-horário) em relação ao

ponto P = (6,5)

y

x

C

B

A

P

Alberto Raposo – PUC-Rio

Etapas da Solução

1. Definir matriz para transladar o triângulo

de modo que o centro de rotação se mova

para a origem do sistema de coordenadas

2. Definir matriz para rotacionar o triângulo

3. Definir matriz para transladar o triângulo

de volta

4. Gerar matriz combinada da transformação

5. Transformar os vértices do triângulo

Alberto Raposo – PUC-Rio

Etapas da Solução

1. Definir matriz para transladar o triângulo

de modo que o centro de rotação se mova

para a origem do sistema de coordenadas

– Centro de rotação: P = (6,5)

– Translação de -6 unidades em x e -5 unidades

em y

(17)

Alberto Raposo – PUC-Rio

Etapas da Solução

2. Definir matriz para rotacionar o triângulo

O ângulo de rotação é medido no sentido

anti-horário: R(+90

o

)

cos(90

o

) = 0 e sin(90

o

) = 1

Alberto Raposo – PUC-Rio

Etapas da Solução

3. Definir matriz para transladar o triângulo

de volta

Translação de 6 unidades em x e 5 unidades

em y

Alberto Raposo – PUC-Rio

Etapas da Solução

4. Gerar matriz combinada da transformação

=

Alberto Raposo – PUC-Rio

Etapas da Solução

5. Transformar os vértices do triângulo

y

x

C

B

A

P

B’

= A’

C’

(18)

Alberto Raposo – PUC-Rio

Transformações em 3D

• Mesma idéia que em 2D:

– Coordenadas homogêneas: (x,y,z,w)

– Matrizes de trasnformação 4x4

=

w

z

y

x

p

o

n

m

l

k

j

i

h

g

f

e

d

c

b

a

w

z

y

x

'

'

'

'

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

=

w

z

y

x

w

z

y

x

1

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

'

'

'

=

w

z

y

x

t

t

t

w

z

y

x

z y x

1

0

0

0

1

0

0

0

1

0

0

0

1

'

'

'

=

w

z

y

x

s

s

s

w

z

y

x

z y x

1

0

0

0

0

0

0

0

0

0

0

0

0

'

'

'

Identidade

Escalamento

Translação

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

−

=

w

z

y

x

w

z

y

x

1

0

0

0

0

1

0

0

1

0

0

0

1

0

0

0

'

'

'

Espelhamento em torno do

plano YZ

=

w

z

y

x

w

z

y

x

1

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

'

'

'

Espelhamento em torno do

plano XZ

=

w

z

y

x

w

z

y

x

1

0

0

0

0

1

0

0

1

0

0

0

0

0

0

1

'

'

'

Espelhamento em torno do

plano XY

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

Θ

Θ

Θ

Θ

=

w

z

y

x

w

z

y

x

1

0

0

0

0

1

0

0

cos

0

0

sin

sin

0

0

cos

'

'

'

Rotação em torno de Z:

Θ

Θ

Θ

Θ

=

w

z

y

x

w

z

y

x

1

0

0

0

0

cos

0

sin

0

0

1

0

0

sin

0

cos

'

'

'

Θ

Θ

Θ

Θ

=

w

z

y

x

w

z

y

x

1

0

0

0

sin

cos

0

0

cos

sin

0

0

0

0

0

1

'

'

'

Rotação em torno de Y:

Rotação em torno de X:

(19)

Alberto Raposo – PUC-Rio

Rotações Reversas

• Como desfazer uma rotação R(θ)?

– Aplicar o inverso da rotação: R(-θ)

•Construindo R(-θ) :

– cos(-θ) = cos(θ)

– sin (-θ) = - sin (θ)

• Assim:

R(-θ) = R

T

(θ)

Θ

Θ

Θ

Θ

=

Θ

Θ

Θ

Θ

1

0

0

0

0

cos

0

sin

0

1

0

0

0

sin

0

cos

1

0

0

0

0

cos

0

sin

0

1

0

0

0

sin

0

cos

T

Alberto Raposo – PUC-Rio

Exercício 3D

Encontre as respectivas matrizes de

transformação para os seguintes casos

a) Translação que leva o ponto p

1

= (a

1

, b

1

, c

1

) para

o ponto p

2

= (a

2

, b

2

, c

2

)

b) Escalamento que leva o ponto p

1

= (a

1

, b

1

, c

1

)

para o ponto p

2

= (a

2

, b

2

, c

2

)

c) Rotação em torno do eixo z que leva o ponto

p

1

= (a

1

, b

1

, c

1

) para o ponto p

2

= (a

2

, b

2

, c

2

)

Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio

Solução

a) Translação que leva o ponto p

1

= (a

1

, b

1

, c

1

) para

o ponto p

2

= (a

2

, b

2

, c

2

)

Matriz de translação ⇒

Alberto Raposo – PUC-Rio

Solução

b) Escalamento que leva o ponto p

1

= (a

1

, b

1

, c

1

)

para o ponto p

2

= (a

2

, b

2

, c

2

)

(20)

Alberto Raposo – PUC-Rio

Solução

c) Rotação em torno do eixo z que leva o ponto

p

1

= (a

1

, b

1

, c

1

) para o ponto p

2

= (a

2

, b

2

, c

2

)

Para rotação em torno de z:

(2) – (1):

Alberto Raposo – PUC-Rio

Solução

c) Rotação em torno do eixo z que leva o ponto

p

1

= (a

1

, b

1

, c

1

) para o ponto p

2

= (a

2

, b

2

, c

2

)

Matriz de rotação ⇒

Substituindo em (1) ou (2):

Alberto Raposo – PUC-Rio

Solução

c) Rotação em torno do eixo z que leva o ponto

p

1

= (a

1

, b

1

, c

1

) para o ponto p

2

= (a

2

, b

2

, c

2

)

Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio

Ângulos de Euler

Fundamentos da Comp. Gráfica Jonas Gomes, Luiz Velho

(21)

Alberto Raposo – PUC-Rio

Ângulos de Euler

+

+

1

0

0

0

0

0

0

y x z x z y x z x z y x y x z x z y x z x z y x y z y z y

c

c

c

s

s

s

c

s

s

c

s

c

c

s

c

c

s

s

s

s

c

c

s

s

s

s

c

c

c

θ

θ

θ

θ

x

x

y

z

θ

θ

θ

θ

y

x

y

z

θ

θ

θ

θ

z

x

y

z

M. Gattass, PUC-Rio Notação: cx= cos(

θ

x); sx= sin(

θ

x) e assim por diante

Alberto Raposo – PUC-Rio

o x

=

90

θ

o z

=

90

θ

o x

=

90

θ

o z

=

90

θ

Alberto Raposo – PUC-Rio

Demo: Ângulos de Euler

http://prt.fernuni-hagen.de/lehre/KURSE/PRT001/course_main/node10.html

Alberto Raposo – PUC-Rio

Bibliografia Adicional

Peter Shirley, Fundamentals of Computer Graphics, A K Peters,

Ltd., Natick, MA, USA, 2002.

Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L.

R., Introduction to Computer Graphics, Addison-Wesley, 1995.

Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Computer

Graphics: Principles and Practices, (Systems Programming), 2nd

edition in C, Addison-Wesley, 1995.

Brutzman, D. e Daly, L., Extensible 3D Graphics for Web

Authors, Morgan Kaufmann, 2007.

The Annotated VRML 97 Reference:

http://accad.osu.edu/~pgerstma/class/vnv/resources/info/Annotated

VrmlRef/Book.html

Referências

Documentos relacionados

Principal objetivo deste trabalho: confrontar os estudantes com a situação concreta do setor no qual irão desenvolver a sua atividade profissional futura,

Em animais muito pequenos (protozoários, por exemplo), as trocas gasosas não constituem problema complexo visto que o oxigênio pode penetrar pela superfície em todas

A direção de Sublime Luz da Tua Memória contou comigo e Nádia Oliveira, além de Felipe Ribeiro na assistência de direção, que foi importantíssimo para a

Outra variável que merece atenção especial é o atraso do reforço. Estudos paramétricos são necessários para avaliar as reais e perceptíveis diferenças entre

O Decreto -Lei n.º 194/2009, de 20 de agosto, alterado pelo Decreto- -Lei n.º 92/2010 de 26 de julho e pela Lei n.º 12/2014 de 6 de março, que estabelece o regime jurídico dos

Contagens de fotons e densidade da amostras depois do tratamento testemunha do ensaio de transmissao direta de raios-gama.. Contagens de fOtons e densidade das repeti~oes

Foi o chefe do governo bus- cal-o como o artífice necessário, pelo caracter, pela cultura, pela intelligencia e pela acção revo- lucionaria, para confiar-lhe a obra

Os resultados apresentados mostram que, na percepção dos entrevistados, o perfil ideal de liderança para um treinador comandar uma equipe na principal divisão