Laboratório de Programação com Games Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Transformações no plano
Transformações geométricas: Introdução Na Computação Gráfica é essencial poder movimentar e deformar objetos. Casos particulares: transformações geométricas. 2
Transformações geométricas: Introdução Uma transformação T no plano é uma função que associa a cada ponto p do plano euclidiano Π um ponto p em Π. Π p p Conveniente introduzir um sistema de coordenadas. 3
no plano (2D) Referencial no plano (O, e, e 2 ), onde O é um ponto escolhido como origem e (e, e 2 ) forma uma base do R 2. OP e + e 2 e são as coordenadas de p no referencial (O, e, e 2 ). Coordenadas da origem O: (,). e 2 p O e 4
no plano (2D) Um referencial estabelece uma correspondência entre o plano euclidiano Π e R 2 {(,), R}. Permite estudar transformações do plano a partir de transformações em R 2. Ponto de partida: estrutura de espaço vetorial do R 2 (logo, do plano). 5
lineares Uma transformação L:R 2 R 2 é dita linear quando L(p +βp 2 )L(p )+βl(p 2 ), onde p, p 2 R 2 e a,b R. Obs: L(, ) (, ) (ou seja, a origem O do referencial é mantida fia por uma transformação linear). 6
lineares Uma transformação linear L:R 2 R 2 fica completamente determinada quando se conhecem L(e ) e L(e 2 ), onde (e, e 2 ) formam uma base do R2. L(e ) ae + be 2, L(e 2 ) ce + de 2 p e + e 2 L(p) L(e )+L(e 2 ) (ae +be 2 )+(ce +de 2 ) (a+c)e + (b+d)e 2 Matriz da transformação a b c d L(e ) L(e 2 ) 7
lineares O mais comum é representar uma transformação linear com respeito à base canônica do R 2 : e (, ), e 2 (,). L(e 2 ) e 2 L(e ) e Transformações lineares preservam elementos lineares (retas, planos, etc) 8
lineares Algumas transformações lineares correspondem a transformações geométricas importantes. Escalas. Refleões. Rotações. Cisalhamento. 9
lineares Redução (< s <), Aumento (s >) c b s s s s ' ' a a
lineares -. Espelhamento em relação ao eio p p
2 lineares + cos sin sin cos cos sin sin cos ' ' + + + sin cos cos sin sin sin cos cos ) sin( ) cos( ' ' r r r r r r r r sin cos r r p p
3 lineares γ + tan tan ' ' γ γ
4 Não: mantêm a origem invariante. Logo, não podem representar translações. Considerar uma classe mais ampla: transformações afins. lineares p p' + t t p ' ' t t t
afins Uma transformação T:R 2 R 2 é dita afim quando T(ap + (-a) p 2 )at(p )+(-a)t(p 2 ), onde p, p 2 R 2 e a R. p T(p ) ap + (-a) p 2 at(p )+(-a)t(p 2 ), p 2 T(p 2 ) 5
6 Uma transformação T é afim se e somente se é da forma T(p) L(p) + t, onde L é linear. afins + f e d b c a
afins Preservam retas, razão de seção e coordenadas baricêntricas. Se p λ v + λ 2 v 2 + λ 3 v 3, com λ + λ 2 + λ 3, então T(p) λ T(v ) + λ 2 T(v 2 ) + λ 3 T(v 3 ). v T(v ) v 3 p v 2 T(p) T(v 3 ) T(v 2 ) 7
afins Uma transformação afim fica determinada quando se conhece T(v ), T(v 2 ) e T(v 3 ), onde v, v 2, v 3 formam um triângulo. Caso particular: referencial (O, e, e 2 ) T(e 2 ) e 2 T(e ) O O e 8
Transformações geométricas: Coordenadas Homogêneas Podemos tratar todas as transformações de forma unificada se representarmos os pontos do espaço em coordenadas homogêneas. Em coordenadas homogêneas, um ponto do plano é representado por uma tripla [,,w] ao invés de um par (,). Duas coordenadas homogêneas [,,w] e [,,w ] representam o mesmo ponto se uma é um múltiplo da outra. 9
Transformações geométricas: Coordenadas Homogêneas Se w podemos dividir as coordenadas homogêneas por w. (,,w) representa o mesmo ponto que (/w,/ w,). Se w, então (,,w) é um ponto no infinito e representa uma direção do plano (mais sobre isto depois...) 2
Transformações geométricas: Coordenadas Homogêneas O uso de coordenadas homogêneas consiste em representar um espaço 2D imerso em um espaço 3D. Se tomarmos todas as triplas (t,t,tw), w, que representam um mesmo ponto, temos uma reta no espaço 3D. w (t,t,tw) (,,w) 2
Transformações geométricas: Coordenadas Homogêneas Os pontos da forma [,, ] formam um plano com coordenadas w no espaço (,,w). w (,,w) (/w,/w,) w 22
23 Pontos são representados em coordenadas homogêneas por vetores de 3 componentes. Logo, as matrizes de transformação devem ser representadas por matrizes 33. Transformações geométricas: Coordenadas Homogêneas + f e d b c a f d b e c a
24 Transformações geométricas: translações em coordenadas homogêneas w w t t t p
25 Transformações geométricas: matrizes de transformação em coordenadas homogêneas Escala Rotação Cisalhamento. s s S cos sin sin cos. R tan tan. C ψ γ
26 Transformações geométricas: Composição de transformações 2D cos sin sin cos cos sin sin cos ' '
de tela A eibição de objetos gráficos é uma aplicação importante de mudança de sistema de coordenadas. Os dispositivos gráficos de saída possuem uma superfície planar onde a representação de objetos gráficos é materializada. Denominamos esta superfície de superfície de suporte. 27
de tela A superfície de suporte possui um sistema de coordenadas denominado sistema de coordenadas do dispositivo. Eemplo: monitor A tela do monitor é a materialização de uma superfície retangular com um sistema de coordenadas ortogonais com origem em algum ponto da tela. 28
de tela Um objeto gráfico possui um sistema de coordenadas no qual as coordenadas dos seus pontos são especificadas. Esse sistema de coordenadas é denominado sistema de coordenadas do objeto. Para eibirmos um objeto gráfico precisamos fazer uma mudança de sistema de coordenadas do objeto para o sistema do dispositivo. 29
de tela Na transformação de tela é feita através do mapeamento entre dois retângulos. A janela (window), definida no sistema de coordenadas do objeto, e a moldura (viewport), é definida no sistema de coordenadas do dispositivo. Coordenadas máimas da janela janela Sistema de coordenadas do objeto moldura Sistema de coordenadas da janela 3
de tela A janela é especificada através de um par de pontos (, ) e (, ) e a viewport por um outro par (u,v ) e (u,v ). As mudanças de coordenadas são realizadas através da sequinte sequência de transformações:. Translada-se o ponto (, ) para a origem do sistema de coordenadas do mundo. 2. Aplica-se uma mudança de escala para transformar o novo retângulo da janela num retângulo congruente ao retângulo da moldura. 3. Translada-se o ponto da origem do sistema do dispositivo para o ponto (u,v ) da moldura. 3
32 (, ) (, ) (u,v ) (u,v ) ), ( T, v v u u v v u u S v ), ( v u v u T v ), (, ), ( T v v u u S v u T M wv!! 2 3 de tela
Algoritmos para rastreio: introdução Rastreio: processo através do qual primitivas geométricas como, por eemplo, linhas e polígonos, são transformadas em imagens digitais. Composto de duas etapas: Determinar quais células da imagem são ocupadas pela primitiva. Atribuir os respectivos atributos(cor, profundidade, etc.) a cada uma dos elementos ocupados. 33
Referências Apostila de Computação Gráfica. Prof. Marcelo Gattass. PUC-Rio. http://www.tecgraf.puc-rio.br/~mgattass/cg/pdf/4_geoalg.pdf Jonas Gomes e Luiz Velho. Fundamentos de Computação Gráfica. Impa. 34