Transformações Geométricas Monge - 1801 - Geometrie Descriptive Em Computação Gráfica exprimimos estas transforma-ções através da Geometria Afim : • as coordenadas de um ponto P’(x’, y’, z’), resultante de uma transformação afim aplicada ao ponto P(x,y,z), são obtidas através de uma função linear do tipo: P’ = M . P + B • A Geometria Afim transforma: – retas paralelas em retas paralelas – pontos finitos em pontos finitos Transformações afins: translação, rotação, escalamen-to, espelhamento e cizalhamento
21
Embed
Transformações Geométricas uMonge - 1801 - Geometrie Descriptive uEm Computação Gráfica exprimimos estas transforma- ções através da Geometria Afim: as.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Transformações Geométricas Monge - 1801 - Geometrie Descriptive Em Computação Gráfica exprimimos estas transforma-
ções através da Geometria Afim:• as coordenadas de um ponto P’(x’, y’, z’), resultante de
uma transformação afim aplicada ao ponto P(x,y,z), são obtidas através de uma função linear do tipo:
P’ = M . P + B• A Geometria Afim transforma:
– retas paralelas em retas paralelas– pontos finitos em pontos finitos
Transformações afins: translação, rotação, escalamen-to, espelhamento e cizalhamento
Transformações Geométricas
P’ = M . P + B
x’ a11 a12 a13 x b1
y’ = a21 a22 a23 y + b2
z’ a31 a32 a33 z b3
No caso das transformações 2D, a matriz M reduz-se a uma matriz 2 X 2.
A cada tipo de transformação, corresponde uma matriz M diferente.
Translação Um objeto é transladado, transladando-se todos os
seus pontos. Um segmento de reta é transladado, transladando-se
os seus pontos extremos, e traçando-se uma nova linha entre eles.
x
y
dy
dx
P
P’
P = (x,y)
x’= x + dxy’= y + dy
P’ = P + T
dx T = dy
x x’
y
y’
Transformações afins
• Rotação - Movimenta um ponto através de uma ro-tação efetuada em torno da origem das coordena-das.
• Escalamento - transforma um objeto em um outro menor e mais próximo da origem
x
y
> 0
x
y
P’
P
Transformações afins Espelhamento - é a rotação em torno de um eixo, de tal
forma que é gerada a imagem especular do objeto. Pode-se também fazer o espelhamento em torno de um segmento genérico qualquer.
Cizalhamento - provoca a deformação do objeto, man-tendo, entretanto, uma direção paralela.
y y
Espelhamentoem torno de umsegmento genérico
Cizalhamentona direção x
x x
Coordenadas Homogêneas
As matrizes apresentadas não permitem que se combi-nem transformações facilmente, isto é, pela multiplica-ção das matrizes de transformações geométricas cor-respondentes a cada transformação.
As coordenadas homogêneas permitem que este efeito possa ser obtido.
espaço N espaço N+1[ a b]T [ aw bw w]T
mapea-mento deN em N+1
Coordenadas Homogêneas Quando se exprimem pontos em coordenadas
homogêneas, as transformações geométricas podem ser tratadas todas de uma mesma forma, como multiplicações:
P’ = M . P M é chamada Matriz de Transformação. P é da forma [ x y 1]T e w foi tomado com o valor
arbitrário 1.
espaço N espaço N+1[ a/w b/w]T [ a b w]T
proje-ção deN+1 em N
Translação
x’ 1 0 dx x y’ = 0 1 dy y 1 0 0 1 1
T(dx, dy) Como se processa um conjunto de translações?
A matriz M, que leva de P a P’’, é dada pelo produto T1 . T2, ou seja, T(dx1+dx2, dy1+dy2) . T é dita Matriz Composição de T1 e T2
Translações sucessivas são aditivas.
P P’ P’’
dx1
dy1
dx2
dy2
Escalamento
x’ Sx 0 0 x y’ = 0 Sy 0 y 1 0 0 1 1
S(Sx, Sy) Como se processa um conjunto de escalamentos?
A matriz M, que leva de P a P’’, é dada pelo produto S1 . S2, ou seja, S (Sx1.Sx2, Sy1.Sy2). M é dita Matriz Composição de S1 e S2
Escalamentos sucessivos são multiplicativos.
P P’ P’’
Sx1
Sy1
Sx2
Sy2
Rotação
x’ cos sin 0 x y’ = sin cos 0 y 1 0 0 1 1
R () Como se processa um conjunto de rotações?
A matriz M, que leva de P a P’’, é dada pelo produto R1 . R2, ou seja, R (1 + 2).
Rotações sucessivas são aditivas.
P P’ P’’1 2
Composição de transformações Exemplo: Rodar um objeto em torno de um ponto P1. Neste caso, M será dada pelas seguintes transforma-ções:
• Transladar P1 para a origem• Rodar o objeto do ângulo estipulado• Transladar da origem para P1
M = T(x1, y1) . R ( ) . T (-x1, -y1)
Os produtos não são comutativosP1 P1 P1
T(x1, y1)T (-x1, -y1) R ( )
Considerações sobre eficiência A Matriz Composição de translações, rotações e
escalamentos tem a forma geral:
Multiplicar M por P para calcular P’ exige 9 multipli-cações (ponto flutuante) mais 6 adições. É mais efi-ciente fazer:
x’ = r11 . x + r12 . y + tx
y’ = r21 . x + r22 . y + ty
Usando-se estas fórmulas serão feitas 4 multiplicações mais 4 adições
r11 r12 tx r21 r22 ty 0 0 1
composição de R e S
Mudança de sistema de coordenadas Sistema de coordenadas locais - o de um objeto; por
exemplo, o de uma peça de mobiliário (cadeira, mesa) Sistema de coordenadas universais - o da cena; por
exemplo, da sala que está sendo mobiliada. Uma mudança de coordenadas é feita de um sistema
“J” para um sistema “I”, transformando-se os eixos de “I” nos eixos do sistema “J”. A Matriz Composição que permite estas transformações deve ser aplicada a todos os objetos do sistema “J”.
4
2
5
P
10
842
1
24
P1 = (10,8)P2 = (6,6)P4 = (4,2)
Para transformar dosistema 2 para o sis-tema 1, transladam-se os eixos de 1 até coincidirem com os de 2 -> T(4,2)
Mudança de sistema de coordenadas Para transformar de “J” em “I”, tem-se: Pi = M i j . Pj
Para transformar de “I” em “J”, tem-se: -1 Pj = M i j . Pi
Sempre existem as matrizes inversas das matrizes de transformação
Para transformar do sistema 4 para o sistema 1, é necessário aplicar-se rotação e escalamento, porque as divisões de escala neste sistema são a metade de cada divisão do 1. Ver detalhes no livro do Foley.
Estas matrizes são utilizadas nos problemas de composição de objetos.
Transformações 3D É uma generalização do problema 2D. As matrizes de
translação e escalamento recebem uma componente correspondente à coordenada z, e as matrizes se tornam 4 X 4.
A rotação no espaço é decomposta em três compo-nentes: uma relativa a cada eixo.
A matriz T(dx, dy,dz) tem como matriz inversa: T(-dx, -dy, -dz) A matriz S(Sx, Sy, Sz) tem como matriz inversa:
S( , , ) A matriz R() tem como inversa a matriz:
R (- ) = RT ()
Sx1
Sy1
Sz1
Rotação em torno de uma linha no OpenGl
Exemplo: Rodar um objeto de 45o em torno de uma linha que liga a origem ao ponto (1,2,3), mantendo fixo o ponto (4,5,6).
glMatrixMode(GL_MODELVIEW)glLoadIdentity ( ) ---------------------------- C = IglTranslatef(4.0,5.0,6.0) ------------------- C = C * T(P)glRotetef(45,1.0,2.0,3.0) ------------------- C = C * R (45)glTranslatef(-4.0,-5.0,-6.0) ---------------- C = C * T(-P)
Model-view Projectionprimitivas
Pipeline OpenGl
Matriz Model-view
Matriz de transformações genéricas
A Matriz Composição de translações, rotações e escalamentos tem a forma geral:
Problema: Transformar o sistema 1 no sistema 2
r11 r12 r13 tx r21 r22 r23 ty
r31 r32 r33 tz 0 0 0 1
composição de R e S
y
xz
P1P2
P3 y
xz
P1P2
P31
2
Complementação As transformações de translação e rotação são
chamadas transformações rígidas porque não deformam o objeto. Já a transformação de esca-la e o cizalhamento deformam o objeto, alteran-do o tamanho ou os ângulos.
1 a 0 SHx = 0 1 0 0 0 1 Obs: A transformação de x é proporcional a y
1 0 0 SHy = b 1 0 0 0 1
Referências Bibliográficas
Foley et al. Cap. 5 Correia, A. M. de A. Perspectivas de superfí-
cies poliédricas auxiliadas por computador. Escola Politécnica da Universidade de São Paulo, São Paulo, SP. Dissertação de Mestra-do, 1991. (Departamento de Eng. de Constru-ção Civil)