UNIVERSIDADE ESTADUAL DE PONTA GROSSA DEPARTAMENTO DE INFORMÁTICA
COMPUTAÇÃO GRÁFICA
PROFESSOR :
Ariangelo Hauer Dias
CADERNO DE ATIVIDADES Abril - 2007
AULA
4 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 Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias
Computação Gráfica
3
AULA
4 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) produto das matrizes T (dx 2, dy 2) . T (dx 2, dy 2) , é:
e
a
matriz
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
4 A matriz produto S ( sx 2, sy 2) . S ( sx1, sy1) é:
0 0 sx 2 0 0 sx1 0 0 sx1.sx 2 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 Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias
Computação Gráfica
5
AULA
4
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
4 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.
Departamento de Informática Prof. Reinaldo Afonso Mayer Prof. Ariangelo Hauer Dias
M1
M2
Translação
Translação
Escala
Escala
Rotação
Rotação
Escala (com sx=sy)
Rotação
Computação Gráfica
7