Anda di halaman 1dari 25

UNIVERSIDADE DE SO PAULO - USP

Instituto de Cincias Matemticas e de Computao ICMC Departamento de Cincias de Computao SCC

Seminrio para a Disciplina SCE 5799 Computao Grfica Profa. Dra. Rosane Minghim

Transformaes Geomtricas 2D e 3D

Alunos: Anderson Luis Nakano caro Lins Leito da Cunha

So Carlos Maro de 2007

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.

determinando a equao de rotao. Fonte: [1]

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

rotao de 45 de uma figura geomtrica. Fonte: [1]

3. Coordenadas Homogneas e Matrizes de Transformao


Vimos que, enquanto a translao tratada como uma soma de vetores, a escala e a rotao tratada como uma multiplicao de um vetor por uma matriz. Para que se possa combinar facilmente essas transformaes, devemos poder tratar do mesmo modo todas as 3 transformaes de uma forma consistente. A soluo representar os pontos P do espao

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

1 0 dx1 + dx 2 T1*T2 = 0 1 dy1 + dy 2 1 0 0

A operao de escala em coordenadas homogneas fica na forma: T(xp, yp, 1) = (xp*


dx , yp *dy, 1). Em forma matricial, temos que:

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:

cos P = RP, onde R = sin 0

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

transformao afim. Elas preservam paralelismo de linha, mas no comprimentos e


ngulos. Uma matriz de transformao cuja submatriz 2x2 do canto superior esquerdo ortogonal preserva ngulos e comprimentos. Estas transformaes so chamadas de transformaes de corpo rgido, pois no h distoro do objeto.

4. Transformadas 2D Adicionais
Duas transformaes adicionais frequentemente usadas so o Espelhamento e o Cisalhamento, discutidas a seguir.

4.1 Espelhamento (Mirror)


A transformao de reflexo, ou espelhamento, aplicada a um objeto, produz um objeto espelhado com relao a um dos eixos ou a ambos. A operao de espelhamento no eixo x, em coordenadas homogneas, fica na forma: T(xp, yp, 1) = (xp, - yp, 1). Em forma matricial, temos que: 8

1 0 0 P = MP, onde M = 0 1 0 0 0 1 Exemplo:

reflexo de um objeto em torno do eixo X. Fonte: [1]

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.

4.2 Cisalhamento (Shearing)


A transformao de cisalhamento provoca uma distoro do objeto em uma de suas coordenadas ou em ambas. Uma distoro na direo x, em coordenadas homogneas fica na forma: T(xp, yp, 1) = (xp+shx* yp, yp, 1). Em forma matricial, temos que: 1 s hx 0 P = Sh(x_ref)P, onde M = 0 1 0 0 0 1

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].

Exemplo 1: Rotao de um objeto em torno de um ponto arbitrrio P1.


Passos: 1) Translao leva P1 origem 2) Efetua rotao 10

3) Efetua translao oposta

Rotao em relao a um ponto P1 (q) . Fonte: [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 :

Exemplo 2: Escala em relao a um ponto arbitrrio P1.


Passos: 1) Translao leva P1 origem 2) Efetua Escala 3) Efetua translao oposta Primeiramente o ponto P1 transladado para a origem, ento feita a escala desejada, e ento o ponto P1 transladado de volta. Dessa forma, a transformao em seqncia : 11

Exemplo 3: Escala e Rotao em relao a P1, posicionamento em P2.


Passos: 1) Transladar P1(x1, y1) para a origem; 2) Efetuar a escala e a rotao desejadas; 3) Efetuar a translao da origem para a nova posio P2(x2, y2), onde a casa deve ser posicionada.

Escala e rotao de uma casa em relao ao ponto P1. Fonte: [1]

T(x2, y2) . R(_) . S(sx, sy) . T(x1,y1) a matriz da Transformao composta.

Obs.: Se M1 e M2 representam duas transformaes fundamentais (translao, rotao ou


escala), em que casos M1 . M2 = M2 . M1? Isto , quando suas matrizes de transformao comutam? Sabe-se que geralmente a multiplicao de matrizes no comutativa. Entretanto fcil mostrar que nos seguintes casos especiais esta comutatividade existe (Tabela abaixo).

12

Transformaes Comutativas

M1 Translao Escala Rotao Escala(s, s) Translao Escala Rotao Rotao

M2

Nestes casos no se precisa estar atento a ordem de construo da matriz de transformao.

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.

Ponto P no eixo de coordenadas. Fonte: [1]

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

Esta transformao pode tambm ser representada por:

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

onde S a funo de escala.

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.

Rotao positiva em torno dos eixos. Fonte: [1]

o Rotao em torno do eixo z


A equao em da rotao em torno do eixo z dada por: x= x*cos( ) - y*sen( ) y= x*sen( ) + y*cos( ) z= z Em coordenadas homogneas, ela segue como:

Ou ainda: 17

P = Rz( )*P

o Rotao em torno do eixo x


A equao em da rotao em torno do eixo x dada por: x= x y= y*cos( ) - z*sen( ) z= y*sen( ) + z*cos( ) Em coordenadas homogneas, ela segue como:

Ou ainda: P = Rx( )*P

o Rotao em torno do eixo y


A equao em da rotao em torno do eixo y dada por: x= z*sen( ) + x*cos( ) y= y z= z*cos( ) - x*sen( ) Em coordenadas homogneas, ela segue como:

18

Ou ainda: P = Ry( )*P

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 :

ento transladando P1 para a origem tem-se:

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)

Rotao dos pontos P1, P2 e P3. Fonte: [1]

cos ( -90) = sen( ) = z2/D1=(z2-z1)/D1 sen( -90) = -cos ( ) = -x2/D1 = -(x2-x1)/D1 onde

ento, o resultado da rotao do ponto P2 para a nova posio P2

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

O resultado da rotao no terceiro passo :

Quarto Passo: Rotao de P1P3 em relao ao eixo z, colocando P1P3 no plano yz.

Rotao em relao ao eixo z. . Fonte: [1]

Aps o terceiro passo, P1P2 situa-se sobre o eixo z e P3 em

A prxima rotao dada pelo ngulo . E

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.

Ento para todos os pontos da figura, basta aplicar: Pfinal = M*Pinicial

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