Você está na página 1de 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

2
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: UV. 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:

4
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 com relao origem.
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
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 sin
P = R P, onde R =
sin cos

Exemplo:

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
6
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 1 0 dx 2
matriz de translao T1 = 0 1 dy1 e depois pela matriz T2 = 0 1 dy 2 , pois

0 0 1 0 0 1

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

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


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

7
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 sin 0
P = RP, onde R = 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.

9
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 M2
Translao Translao
Escala Escala
Rotao Rotao
Escala(s, s) Rotao

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 Direo da Rotao Positiva


x y para z
y z para x
z 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 50-
68.

[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 2D e
Transformaes 3D, acessado em 20/03/2007.

[4] Ladeira, L. A. C. lgera Linear e Equaes Diferenciais. pp 137-138.

25

Você também pode gostar