transformações geométricas · fundamentos • transformações geométricas envolvem operações...

45
Transformações Geométricas Profª. Alessandra Martins Coelho março/2013

Upload: voxuyen

Post on 13-Nov-2018

267 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações Geométricas

Profª. Alessandra Martins Coelho

março/2013

Page 2: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Objetivos

• Entender os princípios das transformações geométricas do tipo translação, rotação e escalamento.

• Efetuar transformações geométricas utilizando coordenadas homogêneas.

Page 3: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Fundamentos

• Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos básicos de álgebra e geometria.

Page 4: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

O que é uma matriz?

• A matriz é um conjunto de elementos, organizados em linhas e colunas.

Page 5: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Operações Básicas

• Adição, subtração, multiplicação

Page 6: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Multiplicação

• AB=BA?

Page 7: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Multiplicação

• AB=BA?

A multiplicação não é comutativa

Page 8: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Identidade

AI = AAA-1= I

Page 9: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Inversa

Page 10: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Inversa

L1 = L1 + L2*(-1)

L2 = L2 + L1*(-1)

L3 = L2+ L1*(-2)

Page 11: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Inversa

L3=L3+L2*(-3)

L3=L3*(-1)

L2 = L2 + L3*(-1)

Page 12: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Inversa

Page 13: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Determinante

Page 14: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Determinante

Page 15: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Matrizes Homogêneas

• Problema: como incluir translações em transformações (e fazer transformações em perspectiva)

• Solução: adicionar uma dimensão extra

Page 16: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Bases ortonormais

• X, Y, Z é uma base ortonormal. Podemos descrever qualquer ponto 3D como uma combinação linear destes vetores.

Page 17: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações básicas -OpenGL

• Translação

glTranslatef(dx, dy, dz);

• Escalamento

glScalef(sx, sy, sz);

• Rotação

glRotatef(ang, x, y, z);

Page 18: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• Para facilitar a visualização dos processos geométricos envolvidos, vamos iniciar o nosso estudo de transformações no R2

Page 19: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• uma transformação T no R2 é uma função que associa a cada ponto p do plano um novo ponto p' tal que:

p'= T(p)

ou

Page 20: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformação no R²

Page 21: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• Um exemplo de uma transformação genérica pode ser ilustrada por

Page 22: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• Uma transformação é dita linear quando a transformada de uma combinação linear for sempre igual à combinação linear dos vetores transformados.

• para quaisquer p1, p2 pertencentes ao plano ou ao espaço e quaisquer que sejam a1, a2

pertencentes aos reais

• quaisquer que sejam a1, a2 pertencentes aos reais, T (a1p1 + a2p2) = a1T( p1) + a2T(p2)

• T(p)=Ap

Page 23: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• Para determinar a matriz associada basta observar que

se tomarmos

Page 24: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Basta Aplicar T aos Vetores da Base

)()()(

)0,..,0,1,0,0(,

11

1

∑∑

==

=

==

==

n

i iii

n

i i

ii

n

i

i

uTvuvTvT

uuvv

=

=

3

2

1

33'

23'

13'

32'

22'

12

'

31'

21'

11'

3

2

1

321))(),(),(()(

v

v

v

uuu

uuu

uuu

v

v

v

uTuTuTvT

Page 25: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações Lineares Bidimensionais

• A origem é o único ponto fixo.

– Logo, a translação não é uma transformação linear.

• São representadas por matrizes 2 x 2.

+

+

=

=

dybx

cyax

y

x

db

caT

Page 26: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Translação

• É uma operação que desloca pontos em uma• determinada direção. Define-se através da equação:

P’=P+Ttal que, para o caso 2D

Onde:• x, y são os pontos originais; • x’, y ’ são os pontos deslocados; e • dx, dy correspondem ao deslocamento nas direções x e

y, respectivamente.

Page 27: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Translação

• Exemplo 2D

Page 28: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Escala

• Escalamento pode tornar um objeto maior ou menor. A equação P’=S.P define essa operação.

tal que, para o caso 2D

Page 29: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Exemplo

Page 30: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Rotação

• Rotaciona (gira) um objeto de um determinado ângulo θ. É dada pela equação: P’ = R.Ptal que, para o caso 2D.

Page 31: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Exemplo

Page 32: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Rotação/Escala

• as operações de escalamento e rotação também deslocam o objeto, pois foram definidas a partir de um ponto na origem.

• para que não ocorra translação desnecessária no objeto é preciso realizar as seguintes etapas:

Page 33: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Rotação/Escala

Page 34: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Coordenadas homogêneas

• As operações matriciais diferem entre adição (translação) e multiplicação (rotação/escala).

P’ = R ・PP’ = S ・PP’ = P + T

• Uma forma de tratar as transformações através da mesma operação é expressar os pontos em COORDENADAS HOMOGÊNEAS.

Page 35: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Coordenadas homogêneas

• Em coordenadas homogêneas, uma terceira coordenada é adicionada (caso 2D)

• E as transformações são escritas na forma

Page 36: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações 3D

• Matrizes de transformações para o caso 3D

Page 37: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações 3D

Page 38: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações 3D

X

Z

Y

Page 39: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Outras Transformações 3D

• Cisalhamento • Reflexão

Page 40: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Transformações - OpenGL

• O OpenGL trabalha com matrizes de transformações

• As operações são efetuadas via multiplicação de matrizes, de acordo com o estado existente

• Portanto, é necessário “carregar” a matriz identidade

• glLoadIdentity();

Page 41: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• OpenGL trabalha com matrizes de transformações...

• Utiliza-se o comando glMatrixMode

Parâmetro GL_PROJECTION antes dos comandos que especificam o tipo de projeção (glOrtho, por exemplo).Parâmetro GL_MODELVIEW antes de transformações geométricas.

Page 42: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

• Uma transformação pode alterar todos os objetos na sequência: não desejado, dependendo da aplicação

• OpenGL: escopo das transformações...São utilizados comando glPushMatrix() e glPopMatrix() para definir início e fim do bloco de objetos onde será(ão) efetuada(s) a(s) transformação(ões).

Page 43: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos
Page 44: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

void display(void){glClear (GL_COLOR_BUFFER_BIT);glPushMatrix();/* Cubo 1 */glPushMatrix();glTranslatef (-2.0, 0.0, 0.0);glScalef (2.0, 1.0, 4.0);glutWireCube (1.0);glPopMatrix();/* Cubo 2 */glPushMatrix();glRotatef (25.0, 0.0, 0.0, 1.0);glTranslatef (2.0, 0.0, 0.0);glScalef (2.0, 1.0, 4.0);glutWireCube (1.0);glPopMatrix();/* Cubo 3 */glPushMatrix();glTranslatef (0.0, 2.0, 0.0);glScalef (2.0, 1.0, 4.0);glutWireCube (1.0);glPopMatrix();/* Cubo 4 */glPushMatrix();glTranslatef (0.0, -2.0, 0.0);glScalef (2.0, 1.0, 4.0);glutWireCube (1.0);glPopMatrix();

glPopMatrix();glutSwapBuffers();

Page 45: Transformações Geométricas · Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma e multiplicação, além de conhecimentos

Referências

• GOMES, Jonas; VELHO, Luiz. Fundamentos da Computação gráfica. Rio de Janeiro: IMPA, 2008.

• GUHA, S. Computer Graphics throughOpenGL: from theory to experiments Chapman & Hall/CRC. Taylor & Francis Group, 2011

• CARVALHO. M. A. G. Computação Gráfica: Transformações Geométricas. Notas de Aula. 2009. Disponível em:www.ceset.unicamp.br/~magic/ST765/CG2009_Transformacoes.pdf . Acesso em: 18 fev 2013.