Transformações Geométricas

7.544 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
7.544
No SlideShare
0
A partir de incorporações
0
Número de incorporações
68
Ações
Compartilhamentos
0
Downloads
133
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Transformações Geométricas

  1. 1. Introdução à Computação Gráfica DEINF-UFMA Prof. Anselmo Paiva UFMA Transformações Geométricas
  2. 2. Transformações Geométricas 2D • Para gerar imagens bidimensionais precisamos das primitivas básicas (linhas, círculos, caracteres, etc.), • Uma vez que temos um objeto definido em termos dessas primitivas, as transformações permitem mudar a orientação, tamanho ou forma dos objetos • Os objetos são representados pelos pontos que o descrevem ( p = (x,y)) • Se descrevermos as transformações de pontos, então descrevemos a transformação de objetos • Transformações 2-D : – Translação. – Escala (relativa a um ponto). – Rotação (em torno de um ponto). Anselmo Cardoso de Paiva - DEINF - UFMA 2
  3. 3. Transformações Lineares (espelhamento) x´ x´ = -1.x x y P´ = P = y´ = y y´ y P´ P x x´ -1 0 = 1 0 y y´ x Exercício: Deduzir as expressões para espelhamento em torno do eixo X.
  4. 4. Translação • Descrevemos a translação de um ponto (x, y) por:  x' = x + tx   y' = y + ty • Ou através de soma de vetores: P' = P + T • Onde os vetores são definidos por :  x  x '  tx  P =  , P' =   , =  T  y  y '  ty  Anselmo Cardoso de Paiva - DEINF - UFMA 4
  5. 5. Translação • Transladando cada ponto do objeto com a mesma equação, transladamos o objeto inteiro • Os pontos se movem ao longo de linhas paralelas. Anselmo Cardoso de Paiva - DEINF - UFMA 5
  6. 6. Translação y tx x’ P’ x P’ = = + ty y’ y tx P t = ty x x’ 1 0 tx x P’ = = y’ 0 1 ty y [T] Matriz de Translação Anselmo Cardoso de Paiva - DEINF - UFMA 6
  7. 7. Escala • Podemos escalar as coordenadas x e y de um ponto de maneira independente: x = s x × x; y = sy × y • Isso também pode ser escrito sob a forma matricial  x '  s x 0   x   = 0 s y   y  y '    • ou P ' = S × P onde S é a matriz de escala. • Se sx=sy então todos os • pontos se movem • diretamente a partir da origem Anselmo Cardoso de Paiva - DEINF - UFMA 7
  8. 8. Rotação y x´ Um ponto pode ser rotacionado em P´ = y´ torno da origem de ângulo q usando as equações x P = q x´ = x.cos q - y.sen q y y´ = x.sen q + y.cos q x E na forma matricial: x´ x cos q -sen q = cos q sen q y´ y Ou P'= RDP onde R é a matriz de rotação • Todos os pontos se movem ao longo de círculos concêntricos, com centro na origem • Uma figura que não esteja na origem sofre uma translação além da rotação
  9. 9. Coordenadas Homogêneas • Escala e rotação podem ser representadas por uma multiplicação de matriz, mas translação não pode. • Se todas as transformações pudessem ser representadas por matriz, multiplicando matrizes colocariamos várias delas juntas. • Isso é possíve se representarmos pontos 2D não por um par de números (x; y) (representado como um vetor unidimensional), mas se representarmos por por três números (X;Y;W) denominado coordenadas homogêneas • Dois conjuntos de coordenadas homogêneas representam o mesmo ponto 2D sss são múltiplos uns dos outros: (3,2,1), (6,4,2) ou (12,8,4) Anselmo Cardoso de Paiva - DEINF - UFMA 9
  10. 10. Coordenadas homogêneas (CH) x wx xh x ∆ ∆ y y wy yh P = = = = y 1 w w P Ex.: 6 3 9 3 ∆ ∆ 4 2 6 = = = 2 2 1 3 x x = xh /w w>0 w y = yh /w y • Cada ponto 2-D possui muitas representações em CH, x que se forem interpretadas como pontos 3D, formam uma reta no espaço 3D passando pela origem, e pelo ponto yh w=1 2D no plano z=1. • Para obter uma única representação tratamos sempre os pontos (X;Y;W) dividino por W para obter na forma (x; xh y; 1).
  11. 11. Translação em coordenadas homogêneas y tx x’ P’ x P’ = = + ty y’ y tx t P = ty x w y x’ 1 0 tx x x’ P’ y’ 0 1 ty y t = = = x y’ 1 0 0 1 1 yh w=1 [T] xh Matriz de Translação
  12. 12. Escala e Rotação em coordenadas homogêneas • Escala  x '  s x 0  x  0   0  y  y' = 0 sy      1  0 1  1  0     • Rotação − sin q  x '  cos q 0  x    0  y  y ' = sin q cosq      1  0 1  1  0     Anselmo Cardoso de Paiva - DEINF - UFMA 12
  13. 13. Propriedades das Transformações • Considere as linhas da matriz de rotação 2 x 2 • Cada linha é um vetor unitário • O produto escalar entre os dois vetores é zero - as linhas são ortogonais • A mesma propriedade vale para as colunas • Em razão dessas propriedades a matriz e denominada ortogonal. • Consequência: – a inversa é igual a transposta Anselmo Cardoso de Paiva - DEINF - UFMA 13
  14. 14. Propriedades das Transformações • Uma matriz da forma r tx  r12 11  ty  r r21  21  0 1 0   • onde a submatriz da parte superior esquerda é ortogonal é denominada de transformação de corpo rígido: – Preserva ângulos. – Preserva comprimentos. – Pode realizar uma translação/rotação arbitrária. Anselmo Cardoso de Paiva - DEINF - UFMA 14
  15. 15. Propriedades das Transformações • O produto de uma sequência arbitrária de matrizes de translações, escalas e rotações, é denominado uma transformação afim. Representada por: r r12 t x  11  r21 r21 t y    0 0 1   onde a submatriz 2x2 superior esquerda não necessariamente é ortogonal • Consequência: – Preserva paralelismo de retas. – Não necessariamente preserva ângulos ou comprimentos. – Pode realizar transformações de translação, escala, rotação, espelhamento e cisalhamento Anselmo Cardoso de Paiva - DEINF - UFMA 15
  16. 16. Transformação de Cisalhamento • Possuem uma interpretação geométrica simples: • São produzidas por uma matriz da seguinte forma:  1 a 0  1 0 0 SH x =  0 1 0 SH y =  b 1 0      0 0 1  0 0 1     • Podem ser produzidas por uma combinação de rotações e escalas não uniformes Anselmo Cardoso de Paiva - DEINF - UFMA 16
  17. 17. Concatenação de Transformações • Suponha que seja necessário rotacionar um objeto em torno de um ponto P1 = (x1; y1), diferente da origem • Não temos uma transformação que faça isso diretamente. • Essa operação pode ser realizada com uma sequência de transformações fundamentais. Anselmo Cardoso de Paiva - DEINF - UFMA 17
  18. 18. Concatenação de Transformações • Translade o objeto de modo que P1 conincida com a origem. • Rotacione em torno da origem. • Translade de volta de modo que o ponto sobre a origem va para na posição originária de P1. Anselmo Cardoso de Paiva - DEINF - UFMA 18
  19. 19. Concatenação • Um única matriz realizando esses três passos pode ser obtida através da multiplicação das matrizes das tr6es transformações na ordem inversa em que as transformações foram aplicadas. Trot _ P1 = Torigem− > p1 Rq _ origemT p1− > origem − − x1   cos q sen q 1 0  1 0 x1  0  y1   senq 0  0 1 y1  =0 − = cos q Trot _ P1 1     0 1 0 1  0 0  0 0 1     − x1 (1 − cos q ) + y1 sin q   cos q senq   = senq y1 (1 − cos q ) − x1 sin q cos q   0  0 1   Anselmo Cardoso de Paiva - DEINF - UFMA 19
  20. 20. Concatenação - Rotação em Torno do centro do Objeto y a y y0 y0 x x0 x x0 1 0 − x0    1 x0  0 1 − y0  0   0 1 y0  0 1 0   y y 0 1 0    cos a 0 − sin a a    sin a cos a 0 0 1 0   x x  x ' 1 x 0   c o sa 0  1 x0   x  − − sin a 0 0          y ' =  0 − sin a cosa  y0  y 1 y0 0 0 1    1 1 1 0   1 0 0 1 0 0 0         
  21. 21. Concatenação de Transformações y y x x T1 T2 y y x x R1 R2 y y E x x P’= T2 R2 E R1 T1 P P’= T2 R2 E R1 T1 P Anselmo Cardoso de Paiva - DEINF - UFMA 21
  22. 22. Transformações em 3D (translações e escalas) y 1 x’ 0 0 tx x 0 y’ 1 0 ty y = x 0 z’ 0 1 tz z 0 0 0 1 1 1 z sx x’ 0 0 0 x 0 y’ sy 0 0 y = 0 z’ 0 sz 0 z 0 0 0 1 1 1
  23. 23. Transformações em 3D (Rotações) 1 x’ 0 0 0 x y 0 cos q x y’ 0 y -sen q x = sen q x 0 cos q x z’ 0 z qy 0 1 0 0 1 1 x qx x’ 0 sen q y 0 x cos q y qz z 0 y’ 1 0 y 0 = -sen q y cos q y z’ 0 0 z 0 0 0 1 1 1 cos q z x’ 0 0 x -sen q x sen q x cos q x y’ 0 y 0 = 0 0 1 z’ 0 z 0 1 0 0 1 1

×