sistemas de...

21
1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Transformações Alberto B. Raposo [email protected] 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: John Dingliana, 2004

Upload: others

Post on 16-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

1

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Transformações

Alberto B. Raposo

[email protected]

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/outranslaçã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:

John Dingliana, 2004

Page 2: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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 windowto 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

Page 3: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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çãoRotação

Euclidianas

Similaridades

EscalamentoIsotrópico

Identidade

MIT EECS 6.837, Durand and Cutler

EscalamentoIsotrópico

Alberto Raposo – PUC-Rio

Transformações Lineares

TranslaçãoRotação

EuclidianasLinear

Similaridades

EscalaentoIsotrópico

IdentidadeEscalamento

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

Page 4: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

4

Alberto Raposo – PUC-Rio

Transformações Afins

• Preservam linhasparalelas Afins

TranslaçãoRotação

EuclidianasLinear

Similaridades

EscalaentoIsotrópico

IdentidadeEscalamento

Shear

Reflexão

Alberto Raposo – PUC-Rio

TransformaçõesProjetivas

• preservam linhas Projetivas

Perspectiva

Afins

TranslaçãoRotação

EuclidianasLinear

Similaridades

EscalaentoIsotrópico

IdentidadeEscalamento

Shear

Reflexão

Alberto Raposo – PUC-Rio

Perpectiva

Perspectiva é um dos fatoresque dá “aparência 3D” às cenas

Alberto Raposo – PUC-Rio

Transformações 2D

EscalamentoRotação

Translação

EscalamentoTranslação

x

y

Coordenadas do mundo

Coordenadasde modelagem

D. Brogan, Univ. of Virginia

Page 5: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

5

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadasde modelagem

Localizaçãoinicial em(0, 0) comeixos x e yalinhados

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadasde modelagem

Scale .3, .3Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadasde modelagem

Scale .3, .3Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 2D

x

y

Coordenadasde modelagem

Scale .3, .3Rotate -90

Translate 5, 3

D. Brogan, Univ. of Virginia

Page 6: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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

X3D – Nó Transform

Page 7: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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 escalaresdiferentes por componente:

• Como representar o escalamento na forma de matrizes?

Escalamento

X × 2,Y × 0.5

D. Brogan, Univ. of Virginia

Page 8: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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 PX

PY

φ

θ

[1][2]

[3][4]

[1] )( )( )( )( φθφθ sinsincoscos RRxQ −=

Substituindo de [3] e [4]…

)( )( θθ sincos yPxPxQ −=

Similarmente, a partir de [2]…

)( )( θθ sincos xPyPyQ +=

)Rcos( Q X φθ +=

)Rsin( Q y φθ +=

)(cosR PX φ= )(sinR Py φ=

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

θθ

θθ

cossin

sincos

'

'

D. Brogan, Univ. of Virginia

Page 9: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

9

Alberto Raposo – PUC-Rio

Translação 2D

+

+≡

+

=

y

x

y

x

ty

tx

t

t

yx

yx

''

y

xx

y

=

y

x

t

tt

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Transformações 2D Básicas

• Translação:– x’ = x + tx– y’ = y + ty

• Escalamento:– x’ = x * sx– y’ = y * sy

• 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 + tx– y’ = y + ty

• Escalamento:– x’ = x * sx– y’ = y * sy

• 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 + tx– y’ = y + ty

• Escalamento:– x’ = x * sx– y’ = y * sy

• Rotação:– x’ = x*cosΘ - y*sinΘ

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

(x,y)

(x’,y’)

Transformações 2D Básicas

D. Brogan, Univ. of Virginia

Page 10: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

10

Alberto Raposo – PUC-Rio

x’ = (x*sx) *cosΘ - (y*sy) * sinΘ

y’ = (x*sx) * sinΘ + (y*sy) * cosΘ

(x’,y’)

• Translação:– x’ = x + tx– y’ = y + ty

• Escalamento:– x’ = x * sx– y’ = y * sy

• 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 + tx– y’ = y + ty

• Escalamento:– x’ = x * sx– y’ = y * sy

• Rotação:– x’ = x*cosΘ - y*sinΘ

– y’ = x*sinΘ + y*cosΘ x’ = ((x*sx)*cosΘ - (y*sy)*sinΘ) + txy’ = ((x*sx)*sinΘ + (y*sy)*cosΘ) + ty

(x’,y’)

D. Brogan, Univ. of Virginia

Transformações 2D Básicas

Alberto Raposo – PUC-Rio

Representação Matricial

• Representar transformação 2D por umamatriz

• Multiplicar matriz por vetor-coluna⇔ aplicar transformação a um ponto

=

yx

dcba

yx''

dcba

dycxy

byaxx

+=

+=

'

'

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Representação Matricial

• Transformações são combinadas pormultiplicação de matrizes

=

yx

lk

ji

hg

fedcba

yx

''

Matrizes são uma forma conveniente e eficientede representar uma seqüência de transformações

D. Brogan, Univ. of Virginia

Page 11: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

11

Alberto Raposo – PUC-Rio

Produto de Matrizes

∑=

=q

k

kjikij bac1

==

qmqq

m

m

nqnn

q

q

bbb

bbb

bbb

aaa

aaa

aaa

L

MOMM

L

L

L

MOMM

L

L

21

22221

11211

21

22221

11211

ABC

=

100

010

001

OM

L

Ineutro:M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Matrizes 2x2

• Que transformações planares podem ser representadas com uma matriz 2x2?

Identidade 2D?

yyxx

==''

=

yx

yx

1001

''

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

ysy

xsx

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)?

yxyyxx

*cos*sin'*sin*cos'

Θ+Θ=Θ−Θ=

ΘΘ

Θ−Θ=

y

x

y

x

cossin

sincos

'

'

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?

yyxx

=−=

''

−=

yx

yx

1001

''

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

yyxx

−=−=

''

−−

=

yx

yx

1001

''

Page 12: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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

tyy

txx

+=

+=

'

'NÃO!

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

• Como representar uma translação como

matriz 3x3?

y

x

tyy

txx

+=

+=

'

'

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

•Coordenadas homogêneas

– representamcoordenadas em 2 dimensões com vetor 3

1

homogêneas coord.yx

yx

• Coordenadas Homogêneas parecem pouco

intuitivas, mas elas simplificam muito as

operações gráficasD. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Coordenadas Homogêneas

• Como representar uma translação como

matriz 3x3?

y

x

tyy

txx

+=

+=

'

'

Resp: Usando a terceira

coluna da matriz

=

1001001

y

x

t

t

Translação

D. Brogan, Univ. of Virginia

Page 13: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

13

Alberto Raposo – PUC-Rio

Translação

•Exemplo

+

+

=

=

111001001

1''

y

x

y

x

ty

tx

yx

t

t

yx

tx = 2ty = 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 pararepresentar muitastransformações úteis emCG

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

ΘΘ

Θ−Θ

=

1100

0cossin

0sincos

1

'

'

y

x

y

x

=

1100

10

01

1

'

'

y

x

t

t

y

x

y

x

=

1100

01

01

1

'

'

y

x

sh

sh

y

x

y

x

Translação

RotaçãoCisalhamento (Shear)

=

1100

00

00

1

'

'

y

x

s

s

y

x

y

x

Escalamento

Alberto Raposo – PUC-Rio

Cisalhamento (Shear)

yxshy

yshxx

y

x

+=

+=

*'

*'

x

y

x

y

γ

=

+

=

11000100tan1

1

tan

1

''

yx

y

yxyx γγ

M. Gattass, PUC-Rio

Page 14: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

14

Alberto Raposo – PUC-Rio

Concatenação de Transformações

x

y

x

y

x

y

x

y

x

y

x

yT1

R1

E

R2

T2

P’= T2 R2 E R1 T1 PP’= T2 R2 E R1 T1 PM. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Composição de Matrizes

• Transformações podem ser combinadas pelamultiplicação de matrizes

ΘΘ

Θ−Θ

=

w

y

x

sy

sx

ty

tx

w

y

x

100

00

00

100

0cossin

0sincos

100

10

01

'

'

'

p’ = T(tx,ty) R(Θ) S(sx,sy) p

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Composição de Matrizes

• Atenção: ordem das transformações fazdiferenç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

xp

R x

y

=

2

22

y

xp

T

x

y

=

1

11

y

xp

R x

y

=

y

x1p

x

y

=

2

22

y

xp

T

(a)

(b)M. Gattass, PUC-Rio

Page 15: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

15

Alberto Raposo – PUC-Rio

Ordem das Transformações

• Ex: rotacionar segmento em 45 graus emtorno 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 45o, R(45), afeta as duasextremidades– 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)

aa

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

a

D. Brogan, Univ. of Virginia

Como trazer o ponto a devolta à posição original??

?

Alberto Raposo – PUC-Rio

Ordem das Transformações

• Correto: isolar ponto a dos efeitosda rotação

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

2. Rotacionar linha em 45o: R(45)

3. Transladar a de volta: T(3)

a

a

a

a

D. Brogan, Univ. of VirginiaAlberto Raposo – PUC-Rio

Composição de Matrizes

=

1''

1

100010301

1000)45cos()45sin(0)45sin()45cos(

100010301

y

x

y

x

a

a

a

a

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

A multiplicação começa da última para a primeira transformação

Page 16: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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 transformadoscom uma simples multiplicação de vetor pormatriz.

Alberto Raposo – PUC-Rio

Exercício 2D

• Considere o triângulo com os seguintes vértices em coordenadashomogêneas– Rotacione o triângulo

de 90o (sentido anti-horário) em relação aoponto P = (6,5)

y

x

C

BA

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ângulo3. Definir matriz para transladar o triângulo

de volta4. Gerar matriz combinada da transformação5. 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

Page 17: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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(+90o)• cos(90o) = 0 e sin(90o) = 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

BA

P

B’

= A’

C’

Page 18: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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

=

wz

yx

ponm

lkji

hgfedcba

wz

yx

''''

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

=

wz

yx

wz

yx

1000010000100001

'''

=

w

z

y

x

t

t

t

w

z

y

x

z

y

x

1000

100

010

001

'

'

'

=

w

z

y

x

s

s

s

w

z

y

x

z

y

x

1000

000

000

000

'

'

'

IdentidadeEscalamento

TranslaçãoD. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

=

wz

yx

wz

yx

1000010000100001

'''

Espelhamento em torno doplano YZ

=

wz

yx

wz

yx

1000010000100001

'''

Espelhamento em torno doplano XZ

−=

wz

yx

wz

yx

1000010000100001

'''

Espelhamento em torno doplano XY

Alberto Raposo – PUC-Rio

Transformações 3D Básicas

ΘΘΘ−Θ

=

wz

yx

wz

yx

1000010000cossin00sincos

'''

Rotação em torno de Z:

ΘΘ−

ΘΘ

=

w

z

y

x

w

z

y

x

1000

0cos0sin

0010

0sin0cos

'

'

'

ΘΘΘ−Θ

=

wz

yx

wz

yx

10000cossin00sincos00001

'''

Rotação em torno de Y:

Rotação em torno de X:

Page 19: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

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(-θ) = RT(θ)

ΘΘ

Θ−Θ

=

ΘΘ−

ΘΘ

10000cos0sin00100sin0cos

10000cos0sin00100sin0cos

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 p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

b) Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

c) Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

• Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio

Solução

a) Translação que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Matriz de translação ⇒

Alberto Raposo – PUC-Rio

Solução

b) Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Matriz de escalamento ⇒

Page 20: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

20

Alberto Raposo – PUC-Rio

Solução

c) Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

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 p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

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 p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

• Qual o ângulo dessa rotação?

⇒ ⇒

Alberto Raposo – PUC-Rio

Ângulos de Euler

Fundamentos da Comp. GráficaJonas Gomes, Luiz Velho

Page 21: Sistemas de Coordenadaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/05_Transformações.pdfSistemas de Coordenadas • Objetos em Computação Gráfica possuem descrições

21

Alberto Raposo – PUC-Rio

Ângulos de Euler

−+

+−

1000

0

0

0

yxzxzyxzxzyx

yxzxzyxzxzyx

yzyzy

cccssscsscsc

csccssssccss

ssccc

θθθθxx

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., ComputerGraphics: 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/AnnotatedVrmlRef/Book.html