Seminrio para a Disciplina SCE 5799 Computao Grfica Profa. Dra. Rosane Minghim
Transformaes Geomtricas 2D e 3D
Sumrio
1. Introduo...............................................................................................................3 2. Transformaes Bsicas em 2D.............................................................................3 2.1 Translao....................................................................................................3 2.2 Escala...........................................................................................................4 2.3 Rotao........................................................................................................5 3. Coordenadas Homogneas e Matrizes de Transformao..................................6 4. Transformaes 2D adicionais...............................................................................8 4.1 Espelhamento (Mirror).................................................................................8 4.2 Cisalhamento (Shearing).............................................................................10 5. Composio de Transformaes 2D.....................................................................10 6. Transformaes Bsicas em 3D............................................................................14 6.1 Translao...................................................................................................15 6.2 Escala..........................................................................................................16 6.3 Rotao........................................................................................................16 7. Composio de Transformaes 2D......................................................................19 8. Exerccio..................................................................................................................24
Referncias....................................................................................................................25
1. Introduo
Em diversas aplicaes na rea de computao grfica, h a necessidade de alterar e manipular o contedo de uma cena. Animaes, por exemplo, so produzidas pelo movimento da cmera ou dos objetos presentes na cena. Mudanas em orientao, tamanho e formato esto ligadas s transformaes geomtricas. Estas aplicaes so aplicadas cena para alterar a geometria dos objetos que compem a cena sem fazer alteraes topolgicas. Uma transformao geomtrica uma aplicao bijectiva (ponto por ponto), entre duas figuras geomtricas, no mesmo plano ou em planos diferentes, de forma que, a partir de uma figura geomtrica original se forma outra geometricamente igual ou semelhante (Wikipedia, 2007). As principais transformaes geomtricas, como escala, rotao, translao, espelhamento e cisalhamento sero discutidas neste documento.
2. Transfomaes Bsicas em 2D
Formalmente, uma transformao de um conjunto no vazio U em um conjunto no vazio V uma correspondncia T que, a cada elemento x de U, associa um nico elemento y = T(x) de V: denota-se F: U V. O conjunto de elementos y para o qual existe um x tal que T(x) = y chama-se imagem de T. O conjunto U chama-se domnio e o conjunto V chama-se contra-domnio de T. Aqui trataremos de transformaes (ou operaes) em que U = V = R2. Falaremos primeiramente sobre as transformaes de translao, escala e rotao.
2.1 Translao
Queremos realizar a translao de um objeto geomtrico representados por um conjunto de pontos Pi pertencentes ao R2. Para isso, adicionamos quantidades inteiras s 3
suas coordenadas. Chamaremos estas quantidades inteiras de dx e dy . Assim, seja um ponto P(x, y) sobre o qual ser efetuada uma operao de translao e seja P as coordenadas do ponto aps a translao. Podemos definir a funo T como sendo T(P) = T(xp, yp) = (xp + dx , yp + dy). Em forma matricial, temos que: dx P = P + T, onde T = dy No difcil observar que, para transladar uma linha, basta transladar seus pontos limites.
2.2 Escala
Agora queremos fazer um objeto parecer maior ou menor, ou seja, aumentar ou diminuir seu tamanho, em outras palavras, mudar sua escala. Para isso, multiplicamos cada ponto Pi do objeto em questo por um fator de mudana de escala na horizontal ( sx ) e um fator de mudana de escala na vertical ( sy ).Assim, seja um ponto P(x, y) sobre o qual ser efetuada uma operao de translao e seja P as coordenadas do ponto aps a translao. Podemos definir a funo T como sendo T(P) = T(xp, yp) = (xp* sx , yp* sy ). Em forma matricial, temos que:
sx 0 P = S P, onde S = 0 sy Exemplo:
Mudana de escala de uma casa. Como a escala no uniforme, sua proporo alterada. Fonte: [1]
importante notar que para garantir que um objeto esteja na mesma posio aps a escala, deve-se fazer uma translao do seu centro at a origem, aplicar a escala e depois aplicar a tranlao inversa primeira.
2.3 Rotao
Por fim queremos rotacionar um objeto de um certo ngulo Assim, o ponto T(xp, yp) tal que: xp = r cos ; yp = r sin ; E o ponto P(xp, yp) : xp = r cos( + ) = r cos( ) cos( ) r sin( ) sin( ) yp = r sin( + ) = r sin( ) cos( ) + r sin( ) cos( ) 5 com relao origem.
Podemos, portanto definir a funo T como sendo T(P) = T(xp, yp) = ( x p cos y p sin , x p sin + y p cos ). Em forma matricial, temos que: cos P = R P, onde R = sin
Exemplo:
sin cos
atravs de trs coordenadas (coordenadas homogneas). Dizemos que 2 pontos em coordenadas homogneas (x, y,W) e (x0, y0,W0) representam o mesmo ponto se e somente um mltiplo do outro . Assim, (2, 3, 6) e (4, 6, 12) representam o mesmo ponto no R2. Tambm, pelo menos uma das coordenadas homogneas precisa ser diferente de zero, assim (0, 0, 0) no permitido. Se a coordenada W diferente de zero, podemos dividir (x, y, W) por ela, obtendo o mesmo ponto (x/W, y/W, 1). Os nmeros x/W e y/W so chamados de Coordenadas Cartesianas do ponto homogneo. A translao em coordenadas homogneas fica na forma: T(xp, yp, 1) = (xp + dx , yp + dy, 1). Em forma matricial, temos que:
1 0 dx P = TP, onde T = 0 1 dy 0 0 1
fcil provar que a translao aditiva, ou seja, se quisermos transladar um objeto em ( dx1 , dy1 ) unidades, e depois em ( dx 2 , dy 2 ) unidades, basta multiplicar o ponto P pela
1 0 dx1 matriz de translao T1 = 0 1 dy1 e depois pela matriz T2 = 0 0 1 1 0 dx 2 0 1 dy 2 , pois 0 0 1
sx 0 0 P = SP, onde S = 0 sy 0 0 0 1
fcil mostrar que a escala uma operao multiplicativa. Por fim, a operao de rotao em coordenadas homogneas fica na forma: T(xp, yp, 1) = ( x p cos y p sin , x p sin + y p cos , 1). Em forma matricial, temos que:
sin cos 0
0 0 1
fcil mostrar que a ratao uma operao aditiva. Uma sequncia de transformaes de rotaes, translaes e escalas chamada de
4. Transformadas 2D Adicionais
Duas transformaes adicionais frequentemente usadas so o Espelhamento e o Cisalhamento, discutidas a seguir.
Tambm podemos espelhar o objeto com relao origem, invertendo ambas coordenadas. Neste caso, a transformao seria dada por:
1 0 0 P = MP, onde M = 0 1 0 0 0 1
Pode-se tambm adotar um eixo arbitrrio A matriz de reflexo pode ser derivada pela composio de uma sequncia de matrizes de reflexo e de rotao. Por exemplo, se a reflexo for em torno da linha diagonal definida por y = x, a matriz de reflexo pode ser derivada da combinao das seguintes transformaes: 1. rotao de 45 na direo horria para fazer a linha y = x coincidir com o eixo x. 2. reflexo em torno do eixo x. 3. rotao de 45 na direo anti-horria para retomar a orientao original da linha y = x.
Analogamente podemos querer distorcer o objeto alterando sua coordenada y. A transformao fica na forma T(xp, yp, 1) = (xp, yp+shy* xp, 1). Em forma matricial, temos que:
1 0 0 P = Sh(x_ref)P, onde M = s hy 1 0 0 0 1
5. Composio de Transformaes 2D
Usa-se composio como uma combinao de matrizes de transformao R, S e T com o propsito de se ter uma maior eficincia. Esta obtida ao aplicar-se uma transformao composta a um ponto em vez de aplicar-lhe uma srie de transformaes, uma aps a outra [1].
Esta seqncia ilustrada acima, onde a casa rotacionada em relao a P1(x1, y1). A primeira translao por (x1,y1), e a ltima translao (oposta a primeira) por (x1, y1). A transformao em seqncia :
12
Transformaes Comutativas
M2
Eficincia
Uma composio genrica de transformaes R, S e T, produz uma matriz da forma:
A submatriz 2x2 superior esquerda, uma composio das matrizes de rotao e escala, enquanto tx e ty so obtidos por influncia da translao. Ao calcularmos M*P (um vetor de 3 elementos multiplicado por uma matriz 3x3), verificamos que so necessrias 9 multiplicaes e 6 adies. Mas, como a ltima linha da matriz fixa, os clculos efetivamente necessrios so:
o que reduz o processo a quatro multiplicaes e duas adies, o que um ganho significante em termos de eficincia. Especialmente se considerarmos que esta operao deve ser aplicada a centenas ou mesmo milhares de pontos por cena ou figura.
13
6. Transformaes Bsicas em 3D
A capacidade para representar e visualizar um objeto em trs dimenses fundamental para a percepo de sua forma. Porm, em muitas situaes necessrio mais do que isto, ou seja, poder manusear o objeto, movimentando-o atravs de rotaes, translaes e mesmo escala. Assim, generalizando o que foi visto para TG em 2D, as TGs em 3D sero representadas por matrizes 4x4 tambm em coordenadas homogneas. Primeiro, ser apresentado uma breve introduo ao sistema de coordenadas 3D, e nos sub-tpicos anteriores as transformaes bsicas em 3D.
Sistemas de Coordenadas
Representam uma forma de indexar e localizar elementos no espao (que 3D). Os Eixos com orientao formam o Sistema de Coordenadas Cartesianas. Dado um ponto P, ele definido por uma tripla de coordenadas (x,y,z) e representado no eixo de coordenadas como mostra a figura abaixo.
14
O sistema de coordenadas para 3D utilizado ser o da Regra da Mo Direita, com o eixo Z perpendicular ao papel e saindo em direo ao observador. O sentido positivo de uma rotao dado quando observando-se sobre um eixo positivo em direo origem, uma rotao de 90 ir levar um eixo positivo em outro positivo. Ou conforme a tabela a baixo. Eixo de Rotao x y z Direo da Rotao Positiva y para z z para x x para y
A Regra da Mo Direita foi escolhida porque este o padro utilizado na matemtica ( s se lembrar da definio do produto vetorial).
6.1 Translao
A translao em 3D pode ser vista como simplesmente uma extenso a partir da translao 2D, ou seja, sua representao em coordenadas homogneas fica da seguinte forma:
onde dx, dy e dz representam o vetor de translao; x, y e z as coordenadas iniciais e x, y e z as coordenadas finais. Simplificando para cada eixo fica: x = x + dx y = y + dy z = z + dz 15
onde T representa a funo de translao, P posio inicial do ponto P e P a posio final aps a translao.
6.2 Escala
Analogamente ao que foi feito em translao 3D com relao a translao 2D acontece com a transformao de escala em 3D com relao a 2D. Sua representao em coordenadas homogneas fica:
onde sx, sy e sz representam o vetor de fator de escala. Simplificando para cada eixo fica: x = x*sx y = y*sy z = z*sz E ela pode ser representada tambm como
6.3 Rotao
Em 2D, a rotao se d em torno de um ponto (1D). Em 3D necessrio especificar uma reta (2D), em torno da qual a rotao ocorrer. 16
Um objeto rotacionado de um ngulo especfico em torno de um eixo: em torno do eixo x, em torno do eixo y, em torno do eixo z ou em torno de um eixo generalizado. Seguindo o que foi dito do tpico de sistema de coordenadas, os sentidos de rotao positiva em torno dos eixos seguem a regra da mo direita, como mostram a figura a baixo.
Ou ainda: 17
P = Rz( )*P
18
7. Composio de Transformaes 3D
A composio de transformaes em 3D pode ser entendida mais facilmente atravs de um exemplo representado pela figura abaixo indicado. O objetivo transformar os segmentos de reta P1P2 e P1P3 da posio inicial em (a) para a posio final em (b). Assim o ponto P1 deve ser transladado para a origem, P1P2 dever ficar sobre o eixo z positivo, e P1P3 dever ficar no plano positivo de yz. Alm disso, os comprimentos das linhas no devem ser alterados.
Transformando P3, P3 e P3 da posio inicial em (a) para a posio final em (b). Fonte: [1]
Uma primeira maneira de se obter a transformao desejada atravs da composio das primitivas de transformao T, Rx, Ry e Rz. Subdividindo o problema, teremos os seguintes passos: 1. Transladar P1 para a origem. 19
2. Rotacionar o segmento P1P2 em relao ao eixo y, de forma que ele (P1P2) fique no plano yz. 3. Rotacionar o segmento P1P2 em relao ao eixo x, de forma que ele (P1P2) fique sobre o eixo z. 4. Rotacionar o segmento P1P3 em relao ao eixo z, de forma que ele (P1P3) fique no plano yz. Primeiro Passo: Translao de P1 = (x1,y1,z1) para a origem. A equao de translao :
Segundo Passo: Rotao de P1P2 em torno do eixo y, colocando P1P2 no plano yz (Matriz). O ngulo de rotao . - Lembretes: cos( -90) = sin( ), e cos( -90) = -cos( ) 20
Ry(-(90- )) = Ry ( -90)
cos ( -90) = sen( ) = z2/D1=(z2-z1)/D1 sen( -90) = -cos ( ) = -x2/D1 = -(x2-x1)/D1 onde
21
Terceiro Passo: Rotao de P1P2 em relao ao eixo x, colocando P1P2 sobre o eixo x.
Rotao em relao ao eixo x. P1 e P2 de comprimento D2 rotacionado em direo ao eixo z, pelo ngulo positivo. Fonte: [1]
O ngulo de rotao . E
onde, 22
Quarto Passo: Rotao de P1P3 em relao ao eixo z, colocando P1P3 no plano yz.
23
Para chegar na posio final, P3 ser ento rotacionado usando a funo: P3= Rz () *P3 A matriz de composio M a transformao necessria composio solicitada no exemplo.
8. Exerccio
Mapa da Mina Baseando-se nas passos abaixo, encontre a matriz de transformao para achar o tesouro. Marque o seu ponto inicial com um X na areia. X est na linha do equador Caminhe no deserto para o nordeste at encontrar um grande cacto. A partir dele, percorra 30 graus em sentido anti-horrio, considerando X como ponto central. Marque um Y na areia neste ponto, e caminhe para o sul a um ponto D, tal que distancia de D at o eixo equatorial seja igual a distancia de Y at este mesmo eixo Caminhe 10 metros para o oeste. percorra 60 graus no sentido horrio considerando Y como ponto central Caminhe 20 metros para o leste. Cave at encontrar o tesouro!!!
24
Referncias
[1] Traina, A.; Oliveira, M. C. Apostila de Computao Grfica. ICMC-USP 2006, pag 5068. [2] Transformao geomtrica. In Wikipedia
http://pt.wikipedia.org/wiki/Transforma%C3%A7%C3%A3o_geom%C3%A9trica, acessado em 20/03/2007. [3] Slides de Aula. In Rosane: SCE 201 SCE 5799 Computo Grfica http://www.lcad.icmc.usp.br/~rosane/CG/aulas.html, Transformaes 3D, acessado em 20/03/2007. [4] Ladeira, L. A. C. lgera Linear e Equaes Diferenciais. pp 137-138. Transformaes 2D e
25