Upload
internet
View
106
Download
0
Embed Size (px)
Citation preview
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.
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..
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’
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
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))
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
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
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))
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
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
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
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
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
'
'
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
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),
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
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)
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’
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
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
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))
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))
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
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
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
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
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
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
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
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
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
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
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
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