Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DEPARTAMENTO DE INFORMÁTICA
COMPUTAÇÃO GRÁFICA
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
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
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
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
Cos (θ ) − Sin(θ ) 0
Definindo: R (θ ) = Sin(θ ) Cos (θ ) 0 (14), temos que: P ' = R (θ ).P (15).
0 0 1
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.
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 é:
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).
M1 M2
Translação Translação
Escala Escala
Rotação Rotação