34
1 Instituto de Computação - UFF Computação Computação Gráfica I Gráfica I Professor : Anselmo Montenegro www.ic.uff.br/~anse lmo Conteúdo : - Transformações geométricas no plano.

Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

Embed Size (px)

Citation preview

Page 1: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

1

Instituto de Computação - UFF

Computação Gráfica IComputação Gráfica IProfessor:

Anselmo Montenegrowww.ic.uff.br/~anselmo

Conteúdo:

- Transformações geométricas no plano.

Page 2: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

2

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : IntroduçãoIntrodução

• Na Computação Gráfica é essencial Na Computação Gráfica é essencial poder poder movimentarmovimentar e e deformardeformar objetos. objetos.

• Casos particulares: Casos particulares: transformações transformações geométricasgeométricas..

Page 3: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

3

Instituto de Computação - UFF

• Uma transformação T no plano é uma função que associa a cada ponto p do plano euclidiano um ponto p’ em .

• Conveniente introduzir um sistema de coordenadas.

Transformações geométricasTransformações geométricas: : IntroduçãoIntrodução

pp p’p’

Page 4: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

4

Instituto de Computação - UFF

• Referencial no plano– (O, e1, e2), onde O é um ponto escolhido como

origem e (e1, e2) forma uma base do R2.

– OP = xe1 + ye2

– x e y são as coordenadas de p no referencial (O, e1, e2).

– Coordenadas da origem O: (0,0).

Transformações geométricasTransformações geométricas: : transformações transformações no plano no plano ((2D2D))

OO

ee11

ee22

pp

Page 5: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

5

Instituto de Computação - UFF

• Um referencial estabelece uma correspondência entre o plano euclidiano e R2 = {(x,y) | x, y R}.

• Permite estudar transformações do plano a partir de transformações em R2.

• Ponto de partida: estrutura de espaço vetorial do R2

(logo, do plano).

Transformações geométricasTransformações geométricas: : transformações transformações no plano no plano ((2D2D))

Page 6: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

6

Instituto de Computação - UFF

• Uma transformação Uma transformação LL::RR22RR22 é dita é dita linearlinear quandoquando

LL((pp11++pp22))==LL((pp11))++LL((pp22)),,

ondeonde pp11, , pp22RR22 ee aa,,bb RR..

• Obs: Obs: LL((00, , 00) = () = (00, , 00) (ou seja, ) (ou seja, a origem O do a origem O do referencial é mantida fixa por uma referencial é mantida fixa por uma transformação lineartransformação linear).).

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

Page 7: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

7

Instituto de Computação - UFF

• Uma transformação linear Uma transformação linear LL::RR22RR22 fica fica completamente determinada quando se conhecem completamente determinada quando se conhecem LL((ee11)) e e LL((ee22)),, onde onde ((ee11, , ee22)) formam uma base do formam uma base do RR22..

LL((ee11) = ) = aeae11 + + bebe22, , LL((ee22) = ) = cece11 + + dede22

pp = = xexe11 + + yeye22 LL((pp) = ) = xLxL((ee11)+yL(e)+yL(e22) ) ==

= x= x((aeae11+be+be22))+y(ce+y(ce11+de+de22) = ) = ((ax+cyax+cy))ee11 + ( + (bx+dybx+dy))ee22

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

Matriz da Matriz da transformaçãotransformação

L(eL(e11)) L(eL(e22))

y

x

db

ca

y

x

Page 8: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

8

Instituto de Computação - UFF

• O mais comum é representar uma transformação linear com respeito à base canônica do R2: e1 = (1, 0), e2 = (0,1).

• Transformações lineares preservam elementos lineares (retas, planos, etc)

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

ee11

ee22

LL((ee11))

LL((ee22))

Page 9: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

9

Instituto de Computação - UFF

• Algumas transformações lineares correspondem Algumas transformações lineares correspondem a a transformações geométricastransformações geométricas importantes. importantes.

– EscalasEscalas..– ReflexõesReflexões..– RotaçõesRotações..– CisalhamentoCisalhamento..

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

Page 10: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

10

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

Redução (0< sx <1) ,Aumento (sy >1)

xx

yy

cc

bb

y

x

s

s

ys

xs

y

x

y

x

y

x

0

0

'

'

y

xa

y

xa

Page 11: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

11

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

x´ = -1.xx´ = -1.xy´ = yy´ = y

xx

yy

y

x

y

x

y

x

10

01

Espelhamento em Espelhamento em relação ao eixo yrelação ao eixo y

y

xp

y

xp

Page 12: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

12

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

y

x

yx

yx

y

x

cossin

sincos

cossin

sincos

'

'

sincoscossin

sinsincoscos

)sin(

)cos(

'

'

rr

rr

r

r

y

x

xx

yy

rr

rrrr

sin

cos

ry

rx

y

xp

y

xp

Page 13: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

13

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

xx

yy

xx

yy

y

x

y

yx

y

x

10

tan1tan

'

'

Page 14: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

14

Instituto de Computação - UFF

• Não: mantêm a origem invariante. Logo, não podem representar translações.

• Considerar uma classe mais ampla: transformações afins.

Transformações geométricasTransformações geométricas: : transformações transformações lineareslineares

xx

yy

pp

p'p'

y

x

t

t

y

x

y

xp

'

'

y

x

t

tt

Page 15: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

15

Instituto de Computação - UFF

• Uma transformação Uma transformação T:RT:R22RR22 é dita é dita afimafim quandoquando

TT((apap11+ + ((1-a1-a)) p p22))=aT=aT((pp11))++((1-a1-a))TT((pp22)),,

ondeonde pp11, , pp22RR22 ee a a RR..

Transformações geométricasTransformações geométricas: : transformações transformações afinsafins

pp11

pp22

T(pT(p11))

TT((pp22))

ap1+ (1-a) p2aT(p1)+(1-a)T(p2),

Page 16: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

16

Instituto de Computação - UFF

• Uma transformação T é afim se e somente se é da forma T(p) = L(p) + t, onde L é linear.

Transformações geométricasTransformações geométricas: : transformações transformações afinsafins

f

e

y

x

db

ca

y

x

Page 17: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

17

Instituto de Computação - UFF

• Preservam retas, razão de seção e coordenadas baricêntricas.

Se p = 1v1 + 2v2 + 3v3, com 1+ 2 + 3 = 1, então T(p) = 1T(v1) + 2T(v2) + 3T(v3).

Transformações geométricasTransformações geométricas: : transformações transformações afinsafins

v3

v1

v2

T(v1)

T(v2)

T(v3)

ppT(p)T(p)

Page 18: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

18

Instituto de Computação - UFF

• Uma transformação afim fica determinada quando se conhece T(v1), T(v2) e T(v3), onde v1, v2, v3 formam um triângulo.

• Caso particular: referencial (O, e1, e2)

Transformações geométricasTransformações geométricas: : transformações transformações afinsafins

ee11

ee22 TT((ee11))

TT((ee22))

OO

O’O’

Page 19: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

19

Instituto de Computação - UFF

• Podemos tratar todas as transformações de forma Podemos tratar todas as transformações de forma unificada se representarmos os pontos do espaço em unificada se representarmos os pontos do espaço em coordenadas homogêneascoordenadas homogêneas..

• Em coordenadas homogêneas, um ponto do plano é Em coordenadas homogêneas, um ponto do plano é representado por uma tripla representado por uma tripla [[xx,,yy,,ww] ] ao invés de um parao invés de um par ((xx,,yy))..

• Duas coordenadas homogêneas Duas coordenadas homogêneas [[xx,,yy,,ww] e ] e [[x’x’,,y’y’,,w’w’]] representam o mesmo ponto se uma é um representam o mesmo ponto se uma é um múltiplo da múltiplo da outraoutra..

Transformações geométricasTransformações geométricas: : Coordenadas Coordenadas HomogêneasHomogêneas

Page 20: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

20

Instituto de Computação - UFF

• Se Se ww00 podemos podemos dividir as coordenadas dividir as coordenadas homogêneas por homogêneas por ww..

((xx,,yy,,ww)) representa o mesmo ponto que representa o mesmo ponto que ((x/wx/w,,y/wy/w,,11))..

• Se Se ww==00, , entãoentão ( (xx,,yy,,ww)) é um é um ponto no infinitoponto no infinito e e representa uma representa uma direçãodireção do plano (mais sobre do plano (mais sobre isto depois...)isto depois...)

Transformações geométricasTransformações geométricas: : Coordenadas Coordenadas HomogêneasHomogêneas

Page 21: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

21

Instituto de Computação - UFF

• O uso de coordenadas homogêneas consiste em O uso de coordenadas homogêneas consiste em representar um espaço 2D imerso em um espaço 3Drepresentar um espaço 2D imerso em um espaço 3D..

• Se tomarmos todas as triplas Se tomarmos todas as triplas ((txtx,,tyty,,twtw), ), ww00, que , que representam um mesmo ponto, temos uma reta no representam um mesmo ponto, temos uma reta no espaço 3D.espaço 3D.

Transformações geométricasTransformações geométricas: : Coordenadas Coordenadas HomogêneasHomogêneas

yy

xx

ww((ttx,ty,twx,ty,tw))

((x,y,wx,y,w))

Page 22: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

22

Instituto de Computação - UFF

• Os pontos da forma [Os pontos da forma [xx, , yy, , 11] formam um ] formam um plano com coordenadas plano com coordenadas ww==11 no espaço no espaço ((xx,,yy,,ww))..

Transformações geométricasTransformações geométricas: : Coordenadas Coordenadas HomogêneasHomogêneas

yy

xx

ww

w=1w=1

((x,y,wx,y,w))

((x/w,y/w,1x/w,y/w,1))

Page 23: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

23

Instituto de Computação - UFF

• Pontos são representados em coordenadas Pontos são representados em coordenadas homogêneas por vetores de 3 componentes.homogêneas por vetores de 3 componentes.

• Logo, as matrizes de transformação devem Logo, as matrizes de transformação devem ser representadas por ser representadas por matrizes 3x3matrizes 3x3..

Transformações geométricasTransformações geométricas: : Coordenadas Coordenadas HomogêneasHomogêneas

f

e

y

x

db

ca

y

x

11001

y

x

fdb

eca

y

x

Page 24: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

24

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : translações em translações em coordenadas homogêneascoordenadas homogêneas

yy

xx

ww

w=1w=1

tt

1100

10

01

1

y

x

t

t

y

x

y

xp y

x

Page 25: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

25

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : matrizes de matrizes de transformação em coordenadas homogêneastransformação em coordenadas homogêneas

EscalaEscala

RotaçãoRotação

CisalhamentoCisalhamento

1100

00

00

. y

x

s

s

xS y

x

1100

0cossin

0sincos

. y

x

xR

1100

01tan

0tan1

. y

x

xC

Page 26: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

26

Instituto de Computação - UFF

Transformações geométricasTransformações geométricas: : Composição de Composição de transformações 2Dtransformações 2D

xx

yy

xx00

yy00

xx

yy

xx

yy

xx

yy

xx00

yy00

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

1100

10

01

100

0cossin

0sincos

100

10

01

1

'

'

0

0

0

0

y

x

y

x

y

x

y

x

Page 27: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

27

Instituto de Computação - UFF

• A OpenGL A OpenGL trata objetos planares como sendo objetos trata objetos planares como sendo objetos tridimensionais com uma das coordenadas constantetridimensionais com uma das coordenadas constante..

• Logo, todas as transformações são realizadas no RLogo, todas as transformações são realizadas no R3 3

(de fato no espaço homogêneo 3d).(de fato no espaço homogêneo 3d).• TranslaçãoTranslação

– glTranslate{fd}(TYPE x, TYPE y, TYPE z);glTranslate{fd}(TYPE x, TYPE y, TYPE z);

• RotaçãoRotação de de angleangle graus em torno de um eixo ( graus em torno de um eixo (xx,,yy,,zz).).– glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z);glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z);

• EscalaEscala– glScale{fd}(TYPE sx, TYPE sy, TYPE sz);glScale{fd}(TYPE sx, TYPE sy, TYPE sz);

Transformações geométricasTransformações geométricas: : OpenGLOpenGL

Page 28: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

28

Instituto de Computação - UFF

• A A exibição de objetos gráficosexibição de objetos gráficos é uma aplicação é uma aplicação importante de mudança de sistema de importante de mudança de sistema de coordenadas.coordenadas.

• Os dispositivos gráficos de saída possuem uma Os dispositivos gráficos de saída possuem uma superfície planar onde a representação de superfície planar onde a representação de objetos gráficos é materializada.objetos gráficos é materializada.

• Denominamos esta superfície de Denominamos esta superfície de superfície de superfície de suportesuporte..

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 29: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

29

Instituto de Computação - UFF

• A superfície de suporte possui um sistema de A superfície de suporte possui um sistema de coordenadas denominado coordenadas denominado sistema de sistema de coordenadas do dispositivocoordenadas do dispositivo..

• Exemplo: monitorExemplo: monitor– A tela do monitor é a materialização de uma A tela do monitor é a materialização de uma

superfície retangular com um sistema de superfície retangular com um sistema de coordenadas ortogonais com origem em algum ponto coordenadas ortogonais com origem em algum ponto da tela.da tela.

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 30: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

30

Instituto de Computação - UFF

• Um objeto gráfico possui um sistema de Um objeto gráfico possui um sistema de coordenadas no qual as coordenadas dos coordenadas no qual as coordenadas dos seus pontos são especificadas.seus pontos são especificadas.

• Esse sistema de coordenadas é denominado Esse sistema de coordenadas é denominado sistema de coordenadas do objetosistema de coordenadas do objeto..

• Para exibirmos um objeto gráfico precisamos Para exibirmos um objeto gráfico precisamos fazer uma fazer uma mudança de sistema de mudança de sistema de coordenadascoordenadas do objeto para o sistema do do objeto para o sistema do dispositivo.dispositivo.

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 31: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

31

Instituto de Computação - UFF

• Na transformação de tela é feita através do Na transformação de tela é feita através do mapeamento entre dois retângulos.mapeamento entre dois retângulos.– A A janelajanela ( (windowwindow), definida no sistema de coordenadas do ), definida no sistema de coordenadas do

objeto, e a objeto, e a molduramoldura ( (viewportviewport), é definida no sistema de ), é definida no sistema de coordenadas do dispositivo.coordenadas do dispositivo.

janelajanelaSistema de coordenadas Sistema de coordenadas

do objetodo objeto

molduramolduraSistema de coordenadas Sistema de coordenadas

da janela da janela

Coordenadas máximas Coordenadas máximas da janela da janela

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 32: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

32

Instituto de Computação - UFF

• A janela é especificada através de um par de pontos A janela é especificada através de um par de pontos (x(x00,y,y00)) e e (x(x11,y,y11)) e a viewport por um outro par e a viewport por um outro par (u(u00,v,v00)) e e (u(u11,v,v11)) . .

• As mudanças de coordenadas são realizadas através As mudanças de coordenadas são realizadas através da sequinte sequência de transformações:da sequinte sequência de transformações:

1.1. Translada-seTranslada-se o ponto o ponto (x(x00,y,y00)) para a origempara a origem do sistema de do sistema de coordenadas do mundo.coordenadas do mundo.

2.2. Aplica-se uma Aplica-se uma mudança de escalamudança de escala para transformar o novo para transformar o novo retângulo da janela num retângulo retângulo da janela num retângulo congruentecongruente ao retângulo da ao retângulo da moldura.moldura.

3.3. Translada-seTranslada-se o ponto da origem do sistema do dispositivo para o ponto da origem do sistema do dispositivo para o ponto o ponto (u(u00,v,v00)) da moldura. da moldura.

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 33: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

33

Instituto de Computação - UFF

(x(x00,y,y00))

xxxx

(x(x11,y,y11))(u(u11,v,v11))

(u(u00,v,v00))

xx xx

100

10

01

),( 0

0

00 y

x

yxT

100

10

01

),( 0

0

00 y

x

yxT

100

00

00

,01

01

01

01

01

01

01

01

yy

vvxx

uu

yy

vv

xx

uuS

100

00

00

,01

01

01

01

01

01

01

01

yy

vvxx

uu

yy

vv

xx

uuS

yy yy vv

100

10

01

),( 0

0

00 v

u

vuT

100

10

01

),( 0

0

00 v

u

vuT

vv

),(,),( 0001

01

01

0100 yxT

yy

vv

xx

uuSvuTM wv

),(,),( 0001

01

01

0100 yxT

yy

vv

xx

uuSvuTM wv

11

22

33

Transformações geométricasTransformações geométricas: : transformações transformações de telade tela

Page 34: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no plano

34

Instituto de Computação - UFF

• Rastreio: processo através do qual Rastreio: processo através do qual primitivas primitivas geométricasgeométricas como, por exemplo, linhas e como, por exemplo, linhas e polígonos, polígonos, são transformadas em imagens são transformadas em imagens digitaisdigitais..

• Composto de duas etapas:Composto de duas etapas:– Determinar quais Determinar quais células da imagem são ocupadascélulas da imagem são ocupadas

pela primitiva.pela primitiva.– Atribuir os respectivos Atribuir os respectivos atributosatributos(cor, profundidade, etc.) (cor, profundidade, etc.)

a cada uma dos elementos ocupados.a cada uma dos elementos ocupados.

Algoritmos para rastreioAlgoritmos para rastreio: : introduçãointrodução