Buscar

Aula 04 - Transformações Geométricas

Prévia do material em texto

Disciplina: Computação Grá�ca
Aula 4: Transformações Geométricas
Apresentação
Iniciaremos nossos estudos sobre as operações que podemos aplicar em objetos 2D ou 3D que in�uenciam na posição,
orientação, forma e tamanho desses objetos.
Para isso, inicialmente faremos uma breve revisão sobre operações envolvendo Vetores e Matrizes. Posteriormente
estudaremos os sistemas de coordenadas e, por �m, estudaremos as transformações geométricas de translação, rotação e
escala.
Objetivos
Compreender as transformações geométricas;
Representar através de matrizes os objetos e suas respectivas transformações;
Conhecer as limitações dessas transformações;
Distinguir os sistemas de coordenadas.
Transformações geométricas
As transformações geométricas são operações que podem ser utilizadas visando a alteração de algumas características como:
Posição Orientação
Forma ou tamanho do objeto
Matrizes
Todas as transformações geométricas podem ser representadas na forma de equações, o que gera di�culdades à manipulação
de objetos grá�cos, pois envolvem muitas operações de aritmética simples.
Para resolver este problema, a adoção de matrizes é uma excelente opção, pois matrizes são mais fáceis de usar e entender do
que as equações algébricas.
Padrão de 
coordenadas
Pontos no plano (x,y) 
Matrizes 2x2
Pontos no espaço tridimensional (x,y,z)
Matrizes 
3x3
Matriz de transformação
Várias transformações combinadas
Representações
Dado um sistema de coordenadas, pode-se de�nir elementos
neste sistema através de suas coordenadas. Caso o sistema
seja 2D, pontos são de�nidos por duas coordenadas.
De�ne-se um ponto pela sua distância em relação ao centro
dos eixos.
(2,1) — 2 unidades distante de x = 0 
— 1 unidade distante de y = 0
 Representação de um ponto em um sistema 2D
Convencionalmente, representa-se um ponto na forma de um vetor linha ou vetor coluna. Também corresponde à forma mais
simples de representação de uma matriz (linha ou coluna).
O par pode servir para representar tanto o ponto quanto o vetor em si.
 A = [2 ,  1] = [ ]2
1
 Vetor linha Vetor coluna
Representação de um ponto através de vetor linha ou vetor coluna
Operações vetores (1)
Diversas operações podem ser efetuadas entre pontos e vetores:
Soma de vetores
t = v + u
Subtração de vetores
t = v + (- u)
Exemplo
Para realizar a soma entre vetores devemos observar que os vetores precisam ter a mesma direção.
Seja u = [1,3] e v = [2,1]
O vetor resultante t = v + u será igual a:
t [1 + 2,3 + 1] = [3,4]
Operações vetores (2)
Diversas operações podem ser efetuadas entre pontos e vetores:
Multiplicação de um vetor por um
escalar (constante)
u = 2v
Transposta de um vetor
vt
Exemplo
Multiplicação de um vetor por escalar:
Seja 𝑣=[2,1],
O vetor resultante u = 2v será igual a:
U = [2*2,2*1] = [4,2]
Vetor transposto:
Seja 𝑣=[3,1],
O vetor transposto resultante v será igual a:
v = [1,3]
t
t
Operações entre pontos e vetores
Diversas operações podem ser efetuadas entre pontos e
vetores:
1. Soma de um ponto com um vetor
Q = P+v
Exemplo
Vejamos um exemplo da soma entre um ponto P e um vetor v.
Seja P = [2,3] e v = [2,-1]
O ponto resultante Q = P + V será igual a:
Q = [2+2,3-1] = [4,2]
Operações matrizes
Algumas operações realizadas com vetores também são aplicadas a matrizes.
A seguir vemos alguns exemplos de operações com matrizes.
Soma de matrizes 
 
[ ] + [ ] = [ ] = [ ]1
3
2
4
9
7
8
6
1 + 9
3 + 7
2 + 8
4 + 6
10
10
10
10
Multiplicação de matriz por escalar 
 
2x[ ] = [ ] = [ ]1
3
2
4
2x1
2x3
2x2
2x4
2
6
4
8
Transposta de uma matriz 
 
[ ] = [ ]1
3
2
4
1
2
3
4
Multiplicação de matrizes 
 
x = =
∣
∣
∣
1
3
2
4
∣
∣
∣
∣
∣
∣
9
7
8
6
∣
∣
∣
∣
∣
∣
1x9 + 2x7
3x9 + 4x7
1x8 + 2x6
3x7 + 4x6
∣
∣
∣
∣
∣
∣
23
55
20
45
∣
∣
∣
Atenção
Algumas operações são limitadas pelo tamanho das matrizes.
Sistema de coordenadas
Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D. Esses sistemas
servem para nos dar uma referência de tamanho e posição dos objetos.
Coordenadas Esféricas Coordenadas Polares
Coordenadas Cilíndricas
Sistema de referência
Sistema de coordenadas cartesianas para alguma �nalidade especí�ca formado por:
Unidade de referência básica;
Limites extremos dos valores aceitos para descrever os objetos.
Sistemas com denominação especial
Sistema de Referência do Universo (SRU)
Sistema de Referência do Objeto (SRO)
Sistema de Referência Normalizado (SRN)
Sistema de Referência do Dispositivo (SRD)
Sistemas de Referência do Universo (SRU)
Sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada
aplicação, é também chamado coordenadas do universo, ou do mundo.
Exemplo
Sistemas CAD de arquitetura - o universo em metros ou centímetros.
Sistemas CAD de mecânica de precisão - o universo em milímetros ou nanômetros.
Sistemas de Referência do Objeto
(SRO)
Cada objeto possui um miniuniverso individual que serve de
base para descrever as suas particularidades em função de
seu sistema.
O centro deste sistema costuma coincidir com o centro de
gravidade do objeto. Na modelagem de sólidos, este centro é
conhecido como pivô.
Sistemas de Referência do Normalizado (SRN)
Funciona como um sistema de referência intermediário entre o SRU e o SRD, tendo como função principal: tornar a geração das
imagens independente do dispositivo.
Coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado.
Esse sistema trabalha com coordenadas normalizadas, em 2D:
0 ≤ x ≤ 1 0 ≤ y ≤ 1
 Transição entre Sistemas de Referência
Sistemas de Referência do Dispositivo (SRD)
Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída.
Exemplo
Número de pixels de monitores:
640×480;
800×600.
Transformações geométricas
A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua forma.
A possibilidade de submetê-lo a diversas transformações é muito importante para aplicações em CG, podendo ser aplicadas em
2D ou 3D.
Os tipos principais são:
Clique nos botões para ver as informações.
Transladar signi�ca movimentar o objeto, mas como é possível movimentar um objeto completo?
Um objeto é formado por pontos, então, para movimentar um objeto, basta movimentar os pontos que compõem o mesmo.
Como os pontos de um objeto podem ser representados em um sistema de coordenadas, basta adicionar a esses pontos o
valor do deslocamento.
Translação 
Imagine um ponto (x, y) que representa um objeto.
Pode-se mover este objeto Tx unidades em relação ao eixo x.
Pode-se mover este objeto Ty unidades em relação ao eixo y.
A nova posição é representada por (x’, y’) e pode ser escrita como:
Formalização 2D 
  =  x + Txx,
  =  y + Tyy , ou
Representação na forma de vetores (soma de dois vetores)
P '  =  P + T
[x' y']  =  [x y]  +  [Tx Ty]
Também é possível representar a translação em um espaço 3D.
Formalização 3D 
  =  x + Txx,
  =  y + Tyy , ou
Representação na forma de vetores (soma de dois vetores)
P '  =  P + T
[x' y']  =  [x y]  +  [Tx Ty]
Escala
Escalonar signi�ca mudar as dimensões de escala, mas como
é possível escalonar um objeto completo?
Basta multiplicar os valores de suas coordenadas por um fator
de escala, ou seja, cada um dos vetores que compõem o
objeto é multiplicado por um mesmo fator de escala.
Formalização 2D
Imagine um ponto (x,y) que representa um objeto.
Pode-se escalonar um objeto no eixo x aplicando um fator de escala S a este ponto
Pode-se escalonar um objeto no eixo y aplicando um fator de escala S a este ponto.
O novo valor de suas coordenadas é representado por (x’, y’) e pode ser escrito como:
x
y
x'  =  x * Sx
y'  =  y * Sy
ou [ ]  =   [ ] [ ]x' y' x y
Sx
0
0
Sy
Formalização 3D
Também é possível representar a translação em um espaço 3D.
[ ]  =   [ ]x' y' z' x y z
⎡
⎣
⎢
Sx
0
0
0Sy
0
0
0
Sz
⎤
⎦
⎥ ou
x' = x * Sx
y' = y * Sy
z' = z * Sz
Atenção
Para aplicar uma escala em um objeto, é necessário que o objeto esteja na origem dos eixos, caso contrário, essa operação de
multiplicação também fará com que o objeto translade, conforme podemos observar na �gura.
 Escalonamento de objetos fora da origem.
Rotação
Rotacionar signi�ca girar. A seguir são apresentados exemplos de rotação, a �gura apresenta a rotação de um único ponto P,
enquanto a �gura apresenta a rotação de um objeto.
 Exemplo de rotação de um ponto
 Exemplo de rotação
Formalização 2D
Imagine um ponto (x, y) que representa um objeto.
Pode-se rotacionar um objeto no plano xy de um dado ângulo θ utilizando-se as expressões obtidas no slide anterior.
O novo valor de suas coordenadas é representado por (x’, y’) e pode ser escrito como:
x' = x * cos θ  −  y * senθ
y' = y * cos θ  −  x * senθ
ou [ ] = [ ][ ]x' y' x y
cos θ
−senθ
senθ
cos θ
Atenção
Para aplicar uma rotação em um objeto, é necessário que o objeto esteja na origem dos eixos, caso contrário, essa operação
também fará com que o objeto translade.
Rotação em torno de um ponto
Para rotacionar um objeto em torno de um dado ponto, precisamos seguir os seguintes passos:
Transladar este ponto para a origem dos eixos.
Efetuar a rotação.
Transladar o ponto para sua posição original.
Conforme podemos ver na �gura.
Rotação 3D
É possível aplicar a rotação em qualquer plano (xy, yz, xz) conforme podemos observar na �gura.
Composição de transformações geométricas
Pode-se criar uma transformação geométrica através da composição de várias outras. No exemplo a seguir queremos aplicar as
transformações geométricas descritas na �gura.
Cientes das transformações a serem aplicadas no objeto. Apresentamos na �gura a formalização dessas transformações e sua
matriz de transformação resultante.
T . S . T − − = . . =
⎛
⎝
⎜x1,y1,
⎞
⎠
⎟
⎛
⎝
⎜Sx,Sy,
⎞
⎠
⎟
⎛
⎝
⎜ x1, y1,
⎞
⎠
⎟
⎡
⎣
⎢
1
0
0
0
1
0
x1
y1
1
⎤
⎦
⎥
⎡
⎣
⎢
Sx
0
0
0
Sy
0
0
0
1
⎤
⎦
⎥
⎡
⎣
⎢
1
0
0
0
1
0
−x1
−y1
1
⎤
⎦
⎥
⎡
⎣
⎢
Sx
0
0
0
Sy
0
(1 −x1
(1 −y1
1
Referências
ANGEL, Edward. Interactive computer graphics: a top-down approch using OpenGL tm. 5. ed. Boston: Addison-Wesley, 2009.
AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. São Paulo: Campus, 2003.
AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. Volume 2. São Paulo: Campus, 2003
FOLEY, James D. Computer graphics: principles and practice. 2.ed. Massachusetts: Addison-Wesley, 1996.
WATT, A, POLICARPO, F. 3D Games. [S.l]: Addison Wesley, 2003. v.2.
Próxima aula
Próxima aula
O processo de modelagem de sólidos conhecido como Contructive Solid Geometry (CSG).
Explore mais
Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto.
Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem.

Continue navegando