23
Introdução à Computação Gráfica DEINF-UFMA Prof. Anselmo Paiva Transformações Geométricas UFMA

Transformações Geométricas

Embed Size (px)

Citation preview

Page 1: Transformações Geométricas

Introdução à Computação GráficaDEINF-UFMA

Prof. Anselmo Paiva

Transformações Geométricas

UFMA

Page 2: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 2

Transformações Geométricas 2D

• Para gerar imagens bidimensionais precisamos das primitivas básicas(linhas, círculos, caracteres, etc.),

• Uma vez que temos um objeto definido em termos dessas primitivas,as transformações permitem mudar a orientação, tamanho ou formados objetos

• Os objetos são representados pelos pontos que o descrevem ( p = (x,y))

• Se descrevermos as transformações de pontos, então descrevemos atransformação de objetos

• Transformações 2-D :

– Translação.

– Escala (relativa a um ponto).

– Rotação (em torno de um ponto).

Page 3: Transformações Geométricas

Transformações Lineares(espelhamento)

x

y

P

P =

y´ P´ =

x´ = -1.xy´ = y

x

y

x

y

-1

0

01

y´ =

Exercício: Deduzir as expressõespara espelhamento em torno doeixo X.

Page 4: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 4

Translação

• Descrevemos a translação de um ponto (x, y) por:

• Ou através de soma de vetores:

• Onde os vetores são definidos por :

+=

+=

tyyy

txxx

'

'

TPP +='

=

=

=

ty

txT

y

xP

y

xP ,

'

'',

Page 5: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 5

Translação

• Transladando cada ponto do objeto com a mesma equação,transladamos o objeto inteiro

• Os pontos se movem ao longo de linhas paralelas.

Page 6: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 6

Translação

x

y

P

x

yP’ =

P’

tx

tyt =

tx

ty+=

x’

y’

P’ = =x’

y’

x

y

1

0

0

1

txty

[T]

Matriz de Translação

Page 7: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 7

Escala

• Podemos escalar as coordenadas x e y de um pontode maneira independente:

• Isso também pode ser escrito sob a forma matricial

• ou onde S é a matriz de escala.• Se sx=sy então todos os• pontos se movem• diretamente a partir da origem

ysyxsx yx ×=×= ;

=

y

x

s

s

y

x

y

x

0

0

'

'

PSP ×='

Page 8: Transformações Geométricas

Rotação

x

y

cos θ x´

y´ =

x

y

P =

y´ P´ =

x

sen θ cos θ -sen θ

Um ponto pode ser rotacionado emtorno da origem de ângulo θ usandoas equações

x´ = x.cos θ - y.sen θy´ = x.sen θ + y.cos θ

E na forma matricial:

Ou P'= RDP onde R é a matriz derotação

• Todos os pontos se movem ao longo de círculos concêntricos, com centro naorigem• Uma figura que não esteja na origem sofre uma translação além da rotação

Page 9: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 9

Coordenadas Homogêneas

• Escala e rotação podem ser representadas por umamultiplicação de matriz, mas translação não pode.

• Se todas as transformações pudessem serrepresentadas por matriz, multiplicando matrizescolocariamos várias delas juntas.

• Isso é possíve se representarmos pontos 2D não porum par de números (x; y) (representado como umvetor unidimensional), mas se representarmos porpor três números (X;Y;W) denominado coordenadashomogêneas

• Dois conjuntos de coordenadas homogêneasrepresentam o mesmo ponto 2D sss são múltiplosuns dos outros: (3,2,1), (6,4,2) ou (12,8,4)

Page 10: Transformações Geométricas

Coordenadas homogêneas (CH)

x

y

P

x

y

1

x

yP

wx

wy

w

xh

yh

w

= =

x = xh /w

y = yh /ww>0

=∆∆ =∆∆

yh

xh

w

w=1

x

y

Ex.: 3

2

1

3

2

6

4

2

9

6

3

==∆∆ =∆∆

• Cada ponto 2-D possui muitas representações em CH,que se forem interpretadas como pontos 3D, formam umareta no espaço 3D passando pela origem, e pelo ponto2D no plano z=1.• Para obter uma única representação tratamos sempreos pontos (X;Y;W) dividino por W para obter na forma (x;y; 1).

Page 11: Transformações Geométricas

Translação em coordenadas homogêneas

yh

xh

w

w=1

x

y

x

y

P

x

yP’ =

P’

tx

tyt =

tx

ty+

t

=x’

y’

P’ = =x’

y’

x’

y’

1

x

y

1

=

1

0

0

0

1

0

tx

ty

1

[T]

Matriz de Translação

Page 12: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 12

Escala e Rotação em coordenadas homogêneas

• Escala

• Rotação

=

1100

00

00

1

'

'

y

x

s

s

y

x

y

x

=

1100

0cossin

0sincos

1

'

'

y

x

y

x

θθ

θθ

Page 13: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 13

Propriedades das Transformações

• Considere as linhas da matriz de rotação 2 x 2• Cada linha é um vetor unitário• O produto escalar entre os dois vetores é zero - as

linhas são ortogonais• A mesma propriedade vale para as colunas• Em razão dessas propriedades a matriz e

denominada ortogonal.• Consequência:

– a inversa é igual a transposta

Page 14: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 14

Propriedades das Transformações

• Uma matriz da forma

• onde a submatriz da parte superior esquerda éortogonal é denominada de transformação de corporígido:– Preserva ângulos.

– Preserva comprimentos.– Pode realizar uma translação/rotação arbitrária.

1002121

1211

y

x

trr

trr

Page 15: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 15

Propriedades das Transformações

• O produto de uma sequência arbitrária de matrizes detranslações, escalas e rotações, é denominado umatransformação afim. Representada por:

onde a submatriz 2x2 superior esquerda nãonecessariamente é ortogonal

• Consequência:– Preserva paralelismo de retas.– Não necessariamente preserva ângulos ou comprimentos.– Pode realizar transformações de translação, escala,

rotação, espelhamento e cisalhamento

1002121

1211

y

x

trr

trr

Page 16: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 16

Transformação de Cisalhamento

• Possuem uma interpretação geométrica simples:

• São produzidas por uma matriz da seguinte forma:

• Podem ser produzidas por uma combinação derotações e escalas não uniformes

=

100

010

01 a

SH x

=

100

01

001

bSH y

Page 17: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 17

Concatenação de Transformações

• Suponha que seja necessário rotacionar um objetoem torno de um ponto P1 = (x1; y1), diferente daorigem

• Não temos uma transformação que faça issodiretamente.

• Essa operação pode ser realizada com umasequência de transformações fundamentais.

Page 18: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 18

Concatenação de Transformações

• Translade o objeto de modo queP1 conincida com a origem.

• Rotacione em torno da origem.

• Translade de volta de modo queo ponto sobre a origem va parana posição originária de P1.

Page 19: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 19

Concatenação

• Um única matriz realizando esses três passos podeser obtida através da multiplicação das matrizes dastr6es transformações na ordem inversa em que astransformações foram aplicadas.

−−

+−−

=

=

=

= >−>−

100

sin)cos1(cos

sin)cos1(cos

100

10

01

100

0cos

0cos

100

10

01

11

11

1

1

1

1

1_

1_11_

θθθθ

θθθθ

θθ

θθ

θ

xysen

yxsen

y

x

sen

sen

y

x

T

TRTT

Prot

origemporigemporigemProt

Page 20: Transformações Geométricas

Concatenação - Rotação em Torno do centro do Objeto

x

y

x0

y0

α

x

y

x

y

α

x

y

x0

y0

1 0

0 1

0 0 1

0

0

x

y 1 0

0 1

0 0 1

0

0

x

y

cos sin

sin cos

α α

α α

0

0

0 0 1

x

y

x

y

x

y

x

y

'

'

c o s s in

s in c o s

1

1 0

0 1

0 0 1

0

0

0 0 1

1 0

0 1

0 0 1 1

0

0

0

0

=

α α

α α

Page 21: Transformações Geométricas

Anselmo Cardoso de Paiva - DEINF - UFMA 21

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 P

Page 22: Transformações Geométricas

Transformações em 3D(translações e escalas)

x’

y’

z’

1

0

1

0

0

0

0

1

0

tx

ty

tz1

y

z

1

x

=

1

0

0

0

x

y

z

x’

y’

z’

1

0

sy

0

0

0

0

sz

0

0

0

0

1

y

z

1

x

=

sx

0

0

0

Page 23: Transformações Geométricas

Transformações em 3D(Rotações)

x

y

z

x’

y’

z’

1

0

cos θ x

sen θ x

0

0

cos θ x

0

0

0

0

1

y

z

1

x

=

1

0

0

0

-sen θ x

θ x x’

y’

z’

1

0cos θ y sen θ y

0

0 cos θ y

0

0

0

0

1

y

z

1

x

=10 0

0

-sen θ y

θ y

x’

y’

z’

1

0

cos θ z

sen θ x

0

0

cos θ x

0

0

0

0

1

y

z

1

x

=100

0

-sen θ x

θ z