O documento discute transformações geométricas 2D como translação, escala e rotação. Essas transformações podem ser representadas por matrizes e aplicadas em sequência usando multiplicação de matrizes. Isso permite combinar múltiplas transformações em uma única transformação composta.
Multi-core Parallelization in Clojure - a Case Study
Introdução à Computação Gráfica - Transformações Geométricas
1. Introdução à Computação Gráfica
DEINF-UFMA
Prof. Anselmo Paiva
UFMA
Transformações Geométricas
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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