24
COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Embed Size (px)

Citation preview

Page 1: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

COMPUTAÇÃO GRÁFICATransformações Geométricas no Plano e no Espaço

Page 2: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Definição

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 a ser desenhado.

Page 3: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Matrizes

Para executar uma transformação podemos usar operações algébricas.

Operações algébricas são caras computacionalmente

Por isso o uso de matrizes é mais interessante para esse objetivo

As matrizes podem fazer as transformações e combiná-las de forma mais eficiente.

Elas também são mais eficientes na armazenagem de figuras presentes num sistema de coordenadas

Page 4: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Pontos, vetores e matrizes

Nos espaços bidimensionais, duas coordenadas caracterizam um ponto.

Nos espaços tridimensionais, três coordenadas caracterizam um ponto. A = [2, 3]: ponto em duas dimensões. B = [20,2,0]: ponto em três dimensões.

Uma matriz quadrada de três dimensões pode ser usada para descrever pontos no espaço

Page 5: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Aritmética de vetores e matrizes Soma e subtração: os dois operandos devem

ter a mesma dimensão Multiplicação por escalar. Transposta de uma matriz

[2,3]T = 2 3

Multiplicação de matrizes O número de linhas da primeira deve ser igual ao

número de colunas da segunda

Page 6: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Transformações lineares

São transformações aplicadas aos objetos ou ao universo como um todo. Podem ser Translação Escala Rotação Reflecção Cisalhamento

Page 7: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Translação

Significa movimentar o objeto Todos os pontos do objeto devem ser movidos

para a nova posição. Um ponto p(x,y) é movido para a posição p(x’,y’). Para isso somamos Tx e Ty às coordenadas de cada

ponto a ser transladado.x’ = x + Txy’ = y + Ty

Ou usando um vetor T de deslocamento.P’ = P + T [x’ y’] = [x y] + [Tx Ty]

Page 8: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Translação

(4,5) (7,5)

(11,9)

(7,1) (10,1)

(14,5)

(3,-4)

Page 9: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Translação

No espaço (x, y, z) (x’, y’, z’)

x’ = x + Txy’ = y + Tyz’ = z + Tz

[x’ y’ z’] = [x y z]+[Tx Ty Tz] Transladar todos os pontos ou somente

pontos chave da figura

Page 10: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Escala

Mudar as dimensões do Objeto Multiplicar os valores das coordenadas por

um valor de escala. Isso deve afetar todos os pontos de uma

dimensão do objeto na mesma proporção. Em 2D:

x’ = x.Sxy’ = y.Sy

Em 3Dx’ = x.Sxy’ = y.Syz‘ = z.Sz

ou [x y]Sx 0

0 Sy

ou [x y z] = [xSx ySy zSz]

Sx 0 0

0 Sy 0

0 0 Sz

Page 11: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Escala

(1,1)

(1,2)

(2,1)

(3,0.5)(6,0.5)

(3,1)

[3,1/2]

*Obs: se o objeto escalonado não estiver definido com relação a origem ocorrerá, também, uma translação

Page 12: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Rotação

Girar o objeto em um ângulo em torno de um ponto.x’ = xcos(θ)-ysen(θ)y’ = ycos(θ)+xsen(θ)

[x’ y’] = [x y]

*Obs: se o objeto não estiver definido na origem do sistema de coordenadas ocorrerá também uma translação

cosθ senθ

-senθ cosθ

Page 13: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Rotação em torno de um eixo Ângulos de Euler Regra da mão direita

Dedão esticado no sentido do eixo (eixo x) Dedo indicador apontando para segundo

eixo (eixo y) Feixe a mão e veja se ela aponta no sentido

do terceiro eixo, se isto acontecer significa que as três direções formam um sistema de eixos positivos

Page 14: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Rotação em 3D

Eixo z => [x’ y’ z’] = [x y z][xcos(α)–ysen(α) xsen(α)+ycos(α) z ]

Eixo x => [x’ y’ z’] = [x y z] [x ycos(β)-zsen(β) ysen(β)+zcos(β) ]

Eixo y => [x’ y’ z’] = [x y z][xcos(δ)+zsen(δ) y -sen(δ)+zcos(δ) ]

cos(α) sen(α) 0

-sen(α) cos(α) 0

0 0 1

1 0 0

0 cos(β) sen(β)

0 -sen(β) cos(β)

cos(δ) 0 -sen(δ)

0 1 0

sen(δ) 0 cos(δ)

Page 15: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Reflexão

A reflexão em torno de um eixo (flip) faz com que um objeto seja reproduzido como se ele fosse visto dentro de um espelho.

y

x

1 0 0 -1

[x’ y’] = [x y]

Page 16: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Reflexão

Em 3D a reflexão pode ser em torno de um dos planos. Ex. Reflexão em torno de x e y: -1 0 0 0 -1 0 0 0 1

Page 17: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Transformações com OpenGL Translação

glTranslatef(float x,float y,float z); Escala

glScalef(float x,float y,float z); Rotação

Angulos de Euler em torno de um dos eixos glRotatef(float anglo, float x,float y,float z); Ex: glRotatef(30.0,1.0,0.0,0.0);

Page 18: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

glMatrixMode() ModelView – matriz de transformação para

aplicação sobre os objetos ou cena Projection ViewPoint

glLoadIdentity() Faz com que a matriz de transformação

corrente seja inicializada com a matriz identidade, ou seja, sem nenhuma transformação

Page 19: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Escopo de Transformações

A restrição do escopo de transformações é feita através de uma pilha de matrizes de transformação

glPushMatrix(); Guarda a matriz de transformação corrente

na pilha glPopMatrix();

Recupera a matriz de transformação do topo da pilha fazendo com que esta passe a ser a corrente

Page 20: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Coordenadas Homogêneas

Reflexão, rotação e escala podem ser executadas com o uso de matrizes, a transformação de translação não.

Para solucionar esse e outros problemas é recomendado o uso de coordenadas homogêneas para todas as operações.

Page 21: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Coordenadas Homogêneas

O sistema de coordenadas homogêneas (SCH) utiliza quatro valores para representar um ponto P no espaço, que será descrito por (x’, y’, z’, M).

A transformação do SCH para o cartesiano se dá pela relação (x, y, z) = (x’/M, y’/M, z’/M)

Os pontos onde M=0 estão fora do espaço dimensional.

O uso de coordenadas homogêneas é importante para permitir a representação de reais por inteiros

Quando M=1 a representação é a mesma do espaço cartesiano.

Page 22: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Matrizes e coordenadas homogêneas

Matriz de rotação

Escala

[x y 1]. cosθ senθ 0 0-senθ cosθ 0 0

0 0 1 0 0 0 0 1

[x y 1 ]. Sx 0 0 0

0 Sy 0 0 0 0 1 0

0 0 0 1

[x y z ] . Sx 0 0 0 0 Sy 0 0

0 0 Sz 0 0 0 0 1

Page 23: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Translação

Pode ser representada por operações com matrizes quando usamos coordenadas homogêneas, uniformizando as transformações geométricas

[x y z 1]. 1 0 0 0 0 1 0 0

0 0 1 0 Tx Ty Tz 1

Page 24: COMPUTAÇÃO GRÁFICA Transformações Geométricas no Plano e no Espaço

Matriz de Transformação

Transformações geométricas correspondem a operações matemáticas de soma e multiplicação nas coordenadas que compõem o objeto

Para evitar que diversas operações matemáticas sejam feitas individualmente em cada vértice é criada uma matriz de transformação com coordenadas homogêneas a qual é aplicada todas as transformações

Esta matriz é denominada matriz de transformação corrente e é utilizada para transformação de todos os objetos