transf2d 2014 1.ppt [modo de compatibilidade]smusse/cg/pdfs2014_1/transf2d_2014_1.pdf ·...

31
Transformações 2D 1 Soraia Raupp Musse

Upload: vuongkiet

Post on 20-Jan-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Transformações 2D

1

Soraia Raupp Musse

Pipeline de Visualização

• Em 2D as coisas são mais simples que em 3D– Simplesmente especificar uma janela do mundo 2D e uma viewport na superfície de visualização

• A complexidade começa em 3D, pelo fato de termos uma dimensão a mais, mas também pelo fato do dispositivo

2

dimensão a mais, mas também pelo fato do dispositivo de exibição ser 2D

X

Y

2D

Pipeline 2D

• SRO

• SRU

• SRW

(recorte 2D)

• SRV

3

• SRV

• SRD

Transformações 2D - Translação

Posição inicial

Translação

Posição final

4

Transformações 2D - Translação

• Cada vértice é modificado

• Utiliza-se vetores para representar a transformação

y

x

tyy

txx

+=

+=

'

'

=

ty

txtr

5

a transformação

• Um ponto p(x,y) torna-se um vetor

• Assim, a translação torna-se uma mera soma de vetores

=

y

xpr

tpprrr

+='

ty

Transformações 2D - Escala

• Coordenadas são multiplicadas pelos fatores de escala

• Tipos de Escala

y

x

syy

sxx

.'

.'

=

=

6

• Tipos de Escala– Uniforme:

• sx = sy

– Não-Uniforme

• sx <> sy

• Escala é uma multiplicação de matrizes

=

+

+=

=

y

x

y

x

y

x

sy

sx

syx

ysx

y

x

s

s

y

x

.

.

..0

.0..

0

0

'

'

Transformações 2D - Rotação

• Como chegar à matriz de rotação?

7

Transformações 2D - Rotação

• Como chegar à matriz de rotação?

)sin(.' )cos(.'

sin. cos.

βαβα

αα

+=+=

==

ryrx

ryrx

8

Transformações 2D - Rotação

• Como chegar à matriz de rotação?

βαβα

αα

)sin(.' )cos(.'

sin. cos.

ryrx

ryrx

+=+=

==

9

βαβα

βαβα

sin.cos.sin.cos.'

sin.sin.cos.cos.'

rry

rrx

+=

−=

βαβαβα

βαβαβα

sin.sincos.cos)cos(

cos.sinsin.cos)sin(

−=+

+=+

Transformações 2D - Rotação

• Como chegar à matriz de rotação?

βαβα

βαβα

αα

sin.sin.cos.cos.'

)sin(.' )cos(.'

sin. cos.

rrx

ryrx

ryrx

−=

+=+=

==

10

ββ

ββ

βαβα

βαβα

cos.sin.'

sin.cos.'

sin.cos.sin.cos.'

sin.sin.cos.cos.'

yxy

yxx

rry

rrx

+=

−=

+=

−=

βαβαβα

βαβαβα

sin.sincos.cos)cos(

cos.sinsin.cos)sin(

−=+

+=+

−=

y

x

y

x.

cossin

sincos

'

'

ββ

ββ

Transformações 2D – Reflexão

• Ocorre ao longo de uma linha

• Ao longo do eixo X

−=

− y

x

y

x.

10

01

11

• Ao longo do eixo Y

• Ao longo dos 2 eixos: XY

−=

y

x

y

x.

10

01

−=

y

x

y

x.

10

01

Transformações 2D – Deslizamento

• Shearing é uma transformação que distorce o objeto

• Distorção na direção x

+ yShxxSh .1

12

• Distorção na direção y

+=

y

yShx

y

xSh xx ..

10

1

+=

yxSh

x

y

x

Shxy .

.1

01

Resumo Transformações 2D

• Applet – Transformações 2D

• Notação Vetor-Matriz simplifica escrita– Translação expressa como uma soma de vetores

– Escala e Rotação expressas como multiplicação Matriz-Vetor

13

Vetor

• Porém, é interessante uma notação uniforme e consistente– Permitir que se expresse as três operações de maneira idêntica

– Permitir que se expresse a combinação destas três operações também de maneira idêntica

• Como fazer isso?

Matriz Transformação

• Produzir uma matriz que seja o resultado da multiplicação das transformações a serem aplicadas no objeto

• Problema: Todas as operações básicas devem ser escritas em forma matricial

14

escritas em forma matricial

• Para isto, escreva as notações matriciais das transformações:

y

x

tyy

txx

+=

+=

'

'

y

x

syy

sxx

.'

.'

=

=

ββ

ββ

cos.sin.'

sin.cos.'

yxy

yxx

+=

−=

=

+

+=

=

y

x

y

x

y

x

sy

sx

syx

ysx

y

x

s

s

y

x

.

.

..0

.0..

0

0

'

'

=

=

yxxx .sin.cos

.sincos' ββββ

15

+

=

=

yxyy .cos.sin

.cossin' ββββ

+

+=

+

+

=

=

tyy

txx

yx

tyx

yy

txx

y

x

x

ty

y

tx

y

x

.1.

.1.

.

1

1

'

'

Coordenadas Homogêneas

• Introduzida em Matemática

• Adiciona uma terceira coordenada w

• Um ponto 2D passa a ser um vetor com 3 coordenadas

• 2 pontos são iguais se e somente se:

w

y

x

yyxx ''

16

• 2 pontos são iguais se e somente se:

• Homogeneizar: dividir por w

• Pontos homogeneizados:

w

y

w

y

w

x

w

x==

'

' e

'

'

1

y

x

Translação – Coord. Homogêneas

′ x

′ y

′ w

=

1 0 tx

0 1 ty

0 0 1

x

y

w

′ x

′ w

′ y

′ w

=

=

xw + tx

y

w + ty

tpprrr

+='

17

′ x

′ y

′ w

=

=

=

x + wtx

y + wty

w

′ w = w + y

Escala – Coord. Homogêneas

′ x

′ y

′ w

=

sx 0 0

0 sy 0

0 0 1

x

y

w

′ x

′ w

′ y

′ w

=

=

sxxw

sy

y

w

18

′ x

′ y

′ w

=

=

=

sxx

syy

w

′ w y w

Rotação – Coord. Homogêneas

′ x

′ y

′ w

=

cosθ − sinθ 0

sinθ cosθ 0

0 0 1

x

y

w

′ x

′ w

′ y

′ w

=

=

cosθ xw − sinθ y

w

sinθ xw + cosθ y

w

19

′ x

′ y

′ w

=

=

=

cosθx − sinθy

sin θx + cosθy

w

′ w = sinθ w + cosθ w

Composição de Transformações

• Para realizar composição de transformações, basta efetuar uma multiplicação de matrizes– Ex: Composição de uma rotação e uma translação

• M = R.T

• Rotação ao redor de um ponto Q:

20

• Rotação ao redor de um ponto Q:– translada Q para origem (TQ),

– rotaciona ao redor da origem (RΘ)

– translada de volta para Q (- TQ).

P’=(-TQ)RΘTQ P

Composição de Transformações

• Observações– Multiplicação de Matrizes não é comutativa

– Ordem das operações influencia diretamente

• Rotação seguida de translação é muito diferente de translação seguida de rotação.

21

Matriz de Transformação

Multiplicação de todas as matrizes que compõem as operações a serem sofridas pelo(s) objeto(s).

22

Animação

T1=(tx1,ty1) T8=(tx8,ty8)

dy

dx

txtxdx

10

01

18

−=

23

framesofnumber

dyy

framesofnumber

dxx

dy

__

__

100

10

=∆

=∆

Animação

S1=(sx1,sy1)

S8=(sx8,sy8)

Sy

Sx

SSSx

00

00

18

−=

24

framesofnumber

Syy

framesofnumber

Sxx

Sy

__

__

100

00

=∆

=∆

Física

25

Exercício:

• Translade em (2,-3) a figura abaixo:

(8,6)

26

• Quais as coordenadas dos 4 vértices da figura transladada?

(2,4)

Resposta:

• Translade em (2,-3) a figura abaixo:

27

• Quais as coordenadas dos 4 vértices da figura transladada? (4,1), (4,3), (10,3) e (10,1)

(0,1)

(10,3)

Exercício:

• Monte a matriz e rotacione em (45 graus) o ponto abaixo:

28

(2,4)

Resposta:

• Monte a matriz e rotacione em (45 graus) o ponto abaixo:

− ′ 2045sin45cosx

29

(2,4)(-1,4;4,2)

=

1

4

2

100

045cos45sin

045sin45cos

w

y

x

Instanciamento: Coordenadas

30

Instanciamento: Coordenadas

31

Considere que todas as figuras geométricas necessárias na casinha tem coordenadas do seu vértice inicial (esq-abaixo) como (0,0). Considere que a escala e rotação estão ok, Quais operações devem ser feitas para modelar a casa acima?