Sei sulla pagina 1di 7

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

DEPARTAMENTO DE INFORMÁTICA

COMPUTAÇÃO GRÁFICA

PROFESSOR : Ariangelo Hauer Dias

CADERNO DE ATIVIDADES

Abril - 2007
AULA

7. COMPOSIÇÃO DE TRANSFORMAÇÕES
Para a Translação, Escala e Rotação, as matrizes de transformação são respectivamente:
Ø P' = T + P
Ø P' = S · P
Ø P' = R · P

Infelizmente, a translação é tratada de forma diferente (como uma soma) das outras - Rotação e
Escala - que são tratadas através de multiplicações. Para que possamos combinar facilmente
essas transformações, devemos poder tratar do mesmo modo todas as 3 transformações de
uma forma consistente. Se os pontos são expressos em Coordenadas Homogêneas, todas as 3
transformações podem ser tratadas como multiplicações.
Para obter coordenadas homogêneas, adicionamos uma terceira coordenada ao ponto. Logo,
em vez de um ponto ser representado por um par de valores (x,y), ele é representado por uma
tripla (x,y,W). Dizemos que 2 conjuntos de coordenadas homogêneas (x,y,W) e (x',y',W')
representam o mesmo ponto se e somente se um é múltiplo do outro. Assim, (2,3,6) e (4,6,12)
é o mesmo ponto representado por diferentes triplas. Isto é, cada ponto tem muitas diferentes
representações homogêneas. Também, pelo menos uma das coordenadas homogêneas precisa
ser diferente de zero, assim (0,0,0) não é permitido.
Se W é a coordenada não zero, podemos dividir (x,y,W) por ela, obtendo o mesmo ponto
(x/W, y/W, 1). Os números x/W e y/W são chamados de Coordenadas Cartesianas do ponto
homogêneo.
Usualmente, triplas representam pontos em um espaço 3D, mas agora estão sendo usadas para
representar pontos em 2D. Observemos que,
se tomarmos todas as triplas que representam
o mesmo ponto, isto é, todas as triplas da
forma (tx,ty,tW) com t diferente de 0,
obtemos uma linha no espaço 3D.
Se homogeneizamos o ponto (dividimos por
W), obtemos um ponto da forma (x,y,1).
Logo, os pontos homogeneizados formam o
plano definido pela equação W=1 no espaço
(x,y,W).
Como agora os pontos são vetores de 3
elementos, as matrizes de transformações que
multiplicam um ponto por outro também
precisam ser de 3x3. A equação de Translação (1) para coordenadas homogêneas fica:

 x' 1 0 dx 
 y ' = 0 1 dy  (1)
   
 1  0 0 1 

Assim, a equação (1) pode ser representada como:

Departamento de Informática Computação Gráfica 3


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

P'= T (dx, dy ).P (2) onde:

1 0 dx 
T (dx, d ) = 0 1 dy  (3)
0 0 1 

O que acontece se um ponto P é transladado por T (dx1, dy1) para P' e então transladado por
T (dx 2, dy 2) para P''? Intuitivamente esperamos que essas translações sejam equivalentes a
T (dx1 + dx 2, dy1 + dy 2) .
Ou seja, se:
P' = T (dx1, dy1).P (4)
P' ' = T (dx 2, dy 2).P' (5)
Substituindo (4) em (5), temos:

P' ' = T (dx 2, dy 2).(T (dx1, dy1).P) = (T (dx 2, dy 2).T (dx1, dy1)).P (6) e a matriz
produto das matrizes T (dx 2, dy 2) . T (dx 2, dy 2) , é:

1 0 dx 2 1 0 dx1 1 0 dx1 + dx 2 
0 1 dy 2.0 1 dy1 = 0 1 dy1 + dy 2 (7) e vemos que a Translação é aditiva.
    
0 0 1  0 0 1  0 0 1 

Essa transformação expressa pelas duas transformações, é chamada de Transformação de


Composição. Podemos mostrar similarmente que podemos realizar Composições também com
a Escala e a Rotação. Assim, as equações de Escala (4), são representadas matricialmente:

 x'  sx 0 0  x   sx 0 0
 y ' =  0 sy 0. y  (8) e definindo, S ( sx, sy ) =  0 sy 0 (9), temos
      
 1   0 0 1   1   0 0 1

P'= S ( sx1, sy1).P (10)

P' ' = S ( sx 2, sy 2).P' (11), e substituindo:

P' ' = S ( sx 2, sy 2).( S ( sx1, sy1).P) = ( S ( sx 2, sy 2).S ( sx1, sy1)).P .

4 Computação Gráfica Departamento de Informática


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

A matriz produto S ( sx 2, sy 2) . S ( sx1, sy1) é:

 sx 2 0 0  sx1 0 0  sx1.sx 2 0 0
 0 sy 2 0. 0 sy1 0 =  0 sy1.sy 2 0 (12),
   
 0 0 1   0 0 1  0 0 1

e temos que a Escala é multiplicativa.

Finalmente, verifiquemos como ficam as equações de rotação:

 x' Cos (θ ) − Sin(θ ) 0  x 


 y ' =  Sin(θ ) Cos (θ ) 0. y  (13)
    
 1   0 0 1  1 

Cos (θ ) − Sin(θ ) 0
 
Definindo: R (θ ) = Sin(θ ) Cos (θ ) 0 (14), temos que: P ' = R (θ ).P (15).
 
 0 0 1 

Uma seqüência arbitrária de rotações, translações e escalas, são chamadas de transformações


afins. As Transformações afins preservam paralelismo de linhas, mas não comprimentos e
ângulos.

Composição de Transformações
Usaremos composição como uma combinação de matrizes de transformação R, S e T. O
propósito de compor-se transformações, é o ganho de eficiência que se obtém ao aplicar-se
uma transformação composta a um ponto em vez de aplicar-lhe uma série de transformações,
uma após a outra.
Considerando a rotação de um objeto em torno de um ponto arbitrário P1. Mas sabemos
apenar rotacionar um ponto em relação a origem. Assim, podemos dividir este problema de
rotação em 3 problemas simples, ou seja: para rotacionar em relação a P1, pode-se usar a
seguinte seqüência de transformações fundamentais:
Efetuar uma translação, levando P1 à origem. Efetuar a Rotação desejada. Efetuar uma
Translação oposta à realizada em 1., levando P1 a posição anterior.

Departamento de Informática Computação Gráfica 5


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

Figura 1 - Rotação em relação ao Ponto P1, por um ângulo teta.

Esta sequência é ilustrada na figura 1, onde a casa é rotacionada em relação a P1(x1,y1). A


primeira translação é por (-x1,-y1), e a última translação (oposta a primeira) é por (x1,y1). A
transformação em sequência é:

Esse procedimento pode ser usado de forma similar para se efetuar a Escala de um objeto em
relação a um ponto arbitrário P1. Primeiramente o ponto P1 é transladado para a origem, então
é feita a escala desejada, e então o ponto P1 é transladado de volta.
Dessa forma, a transformação em seqüência é:

6 Computação Gráfica Departamento de Informática


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias
AULA

Suponhamos que desejamos escalar, rotacionar e posicionar a casa mostrada na figura 10.10,
com o ponto P1(x1,y1) como o centro da rotação e da escala. A sequência de transformações
fica a seguinte:
Transladar P1(x1,y1) para a origem; Efetuar a escala e a rotação desejadas; Efetuar a translação
da origem para a nova posição P2(x2,y2).

T(x2,y2) . R(0) . S(sx,sy) . T(-x1,-y1) é a matriz da Transformação composta.

Figura 1.1 - Escala e rotação de uma casa em relação ao ponto P1.

Se M1 e M2 representam duas transformações fundamentais (translação, rotação ou escala), em


que casos M1 . M2 = M2 . M1? Isto é, quando suas matrizes de transformação comutam?
Sabemos que geralmente a multiplicação de matrizes não é comutativa.

M1 M2

Translação Translação

Escala Escala

Rotação Rotação

Escala (com sx=sy) Rotação

Departamento de Informática Computação Gráfica 7


Prof. Reinaldo Afonso Mayer
Prof. Ariangelo Hauer Dias

Potrebbero piacerti anche