Inf 1366 computa o gr fica interativa transforma es
This presentation is the property of its rightful owner.
Sponsored Links
1 / 84

INF 1366 – Computação Gráfica Interativa Transformações PowerPoint PPT Presentation


  • 52 Views
  • Uploaded on
  • Presentation posted in: General

INF 1366 – Computação Gráfica Interativa Transformações. Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366. Sistemas de Coordenadas. Objetos em Computação Gráfica possuem descrições numéricas (modelos) que caracterizam suas formas e dimensões.

Download Presentation

INF 1366 – Computação Gráfica Interativa Transformações

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Inf 1366 computa o gr fica interativa transforma es

INF 1366 – Computação Gráfica InterativaTransformações

Alberto B. Raposo

[email protected]

http://www.tecgraf.puc-rio.br/~abraposo/INF1366

Alberto Raposo – PUC-Rio


Sistemas de coordenadas

Sistemas de Coordenadas

  • Objetos em Computação Gráfica possuem descrições numéricas (modelos) que caracterizam suas formas e dimensões.

  • Esses números se referem a um sistema de coordenadas, normalmente o sistema Cartesiano de coordenadas: x, y e z.

  • Em alguns casos, precisamos de mais de um sistema de coordenadas:

    • Um sistema local para descrever partes individuais de uma máquina, por exemplo, que pode ser montada especificando-se a relação de cada sistema local das várias peças.

John Dingliana, 2004

Alberto Raposo – PUC-Rio


Transforma es

Transformações

  • Em alguns casos, objetos exibem simetrias, de modo que apenas parte deles precisa ser descrita, pois o resto pode ser construído por reflexão, rotação e/ou translação do pedaço original.

  • Um projetista pode querer visualizar um objeto sob vários pontos de vista, rotacionando-o ou movendo uma câmera virtual.

  • Em animação, um ou mais objetos podem precisar se mover em relação ao outro, de modo que seus sistemas de coordenadas locais devam ser transladados e rotacionados ao longo da animação.

John Dingliana, 2004

Alberto Raposo – PUC-Rio


Exemplo 1

Exemplo 1

  • Partes do objeto definidas em sistemas de coordenadas locais:

  • Objeto “montado” por meio de transformação das partes constituintes:

etc...

John Dingliana, 2004

Alberto Raposo – PUC-Rio


Exemplo 2

Exemplo 2

  • A cada quadro da animação, o objeto é transformado (rotação, nesse caso).

  • O objeto também poderia ser transformado pela mudança de tamanho (escalamento), sua forma (deformação), ou sua localização (translação).

  • Outros efeitos de animação são obtidos sem alterar o objeto em si, mas a forma como ele é visualizado (transformação window to viewport) a cada quadro (por exemplo, um zoom).

5 etapas de uma animação de um cubo girando

John Dingliana, 2004

Alberto Raposo – PUC-Rio


Transforma es1

Transformações

  • Há 2 formas de se enxergar uma transformação

    • Uma Transformação de Objeto altera as coordenadas de cada ponto de acordo com alguma regra, mantendo o sistema de coordenadas inalterado.

    • Uma Transformação de Coordenadas produz um sistema de coordenadas diferente, e então representa todos os pontos originais nesse novo sistema.

  • Cada maneira tem suas vantagem, e são intimamente relacionadas.

John Dingliana, 2004

Alberto Raposo – PUC-Rio


Inf 1366 computa o gr fica interativa transforma es

.4, 2

1,1

TRANSFORMAÇÃO DE OBJETO

John Dingliana, 2004

TRANSFORMAÇÃO DE COORDENADAS

(1,1)

(1,1)

Alberto Raposo – PUC-Rio


Classes de transforma es

Classes de Transformações

  • Euclidianas / Corpos Rígidos

  • de Similaridade

  • Lineares

  • Afins

  • Projetivas

Alberto Raposo – PUC-Rio


Transforma es euclidianas

Transformações Euclidianas

Identidade

  • Preservam distâncias

  • Preservam ângulos

Translação

Corpos Rígidos / Euclidianas

Identidade

Translação

Rotação

Rotação

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio


Transforma es de similaridade

Transformações de Similaridade

  • Preservam ângulos

Similaridades

Escalamento

Isotrópico

Euclidianas

Escalamento

Isotrópico

Identidade

Translação

Rotação

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio


Transforma es lineares

Transformações Lineares

Escalamento

Reflexão

Shear

Similaridades

Linear

Euclidianas

Escalamento

Identidade

Translação

EscalaentoIsotrópico

Reflexão

Rotação

Shear

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio


Transforma es lineares1

Transformações Lineares

  • L(p + q) = L(p) + L(q)

  • L(ap) = a L(p)

MIT EECS 6.837, Durand and Cutler

Alberto Raposo – PUC-Rio


Transforma es afins

Transformações Afins

  • Preservam linhas paralelas

Afins

Similaridades

Linear

Euclidianas

Escalamento

Identidade

Translação

EscalaentoIsotrópico

Reflexão

Rotação

Shear

Alberto Raposo – PUC-Rio


Transforma es projetivas

TransformaçõesProjetivas

  • preservam linhas

Projetivas

Afins

Similaridades

Linear

Euclidianas

Escalamento

Identidade

Translação

EscalaentoIsotrópico

Reflexão

Rotação

Shear

Alberto Raposo – PUC-Rio

Perspectiva


Perpectiva

Perpectiva

Perspectiva é um dos fatores

que dá “aparência 3D” às cenas

Alberto Raposo – PUC-Rio


Transforma es 2d

Transformações 2D

Coordenadas de modelagem

Escalamento

Translação

y

D. Brogan, Univ. of Virginia

x

Escalamento

Rotação

Translação

Coordenadas do mundo

Alberto Raposo – PUC-Rio


Transforma es 2d1

Transformações 2D

Coordenadas de modelagem

y

D. Brogan, Univ. of Virginia

x

Localizaçãoinicial em(0, 0) comeixos x e yalinhados

Alberto Raposo – PUC-Rio


Transforma es 2d2

Transformações 2D

Coordenadas de modelagem

y

D. Brogan, Univ. of Virginia

x

Scale .3, .3

Rotate -90

Translate 5, 3

Alberto Raposo – PUC-Rio


Transforma es 2d3

Transformações 2D

Coordenadas de modelagem

y

D. Brogan, Univ. of Virginia

x

Scale .3, .3

Rotate -90

Translate 5, 3

Alberto Raposo – PUC-Rio


Transforma es 2d4

Transformações 2D

Coordenadas de modelagem

y

D. Brogan, Univ. of Virginia

x

Scale .3, .3

Rotate -90

Translate 5, 3

Alberto Raposo – PUC-Rio


Vrml n transform

VRML: Nó Transform

Alberto Raposo – PUC-Rio


Exemplo em vrml

Exemplo em VRML

The Annotated VRML Reference

Alberto Raposo – PUC-Rio


Exemplo em vrml1

Exemplo em VRML

Alberto Raposo – PUC-Rio


X3d n transform

X3D – Nó Transform

Alberto Raposo – PUC-Rio


Exemplo em x3d

Exemplo em X3D

Alberto Raposo – PUC-Rio


A ordem das transforma es faz diferen a

A ordem das transformações faz diferença!

Alberto Raposo – PUC-Rio


Escalamento

Escalamento

  • Escalar uma coordenada significa multiplicar cada um de seus componentes por um valor escalar

  • Escalamento isotrópico significa que esse valor escalar é o mesmo para todos os componentes

 2

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Escalamento1

X  2,Y  0.5

Escalamento

  • Escalamento não-isotrópico: valores escalares diferentes por componente:

  • Como representar o escalamento na forma de matrizes?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Escalamento2

Escalamento

  • Operação de escalamento:

  • Na forma matricial:

D. Brogan, Univ. of Virginia

Matriz de escalamento

Alberto Raposo – PUC-Rio


Rota o 2d

Q

P

PY

PX

R

Rotação 2D

[1]

John Dingliana, 2004

[2]

[3]

[4]

[1]

Substituindo de [3] e [4]…

Similarmente, a partir de [2]…

Alberto Raposo – PUC-Rio


Rota o 2d1

(x’, y’)

(x, y)

Rotação 2D

x’ = x cos() - y sin()

y’ = x sin() + y cos()

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Rota o 2d2

Rotação 2D

  • Na forma matricial:

  • Embora sin(q) e cos(q) sejam funções não-lineares de q,

    • x’ é combinação linear de x e y

    • y’ é combinação linear de x e y

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Transla o 2d

Translação 2D

y

y

x

x

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio


Transforma es 2d b sicas

Transformações 2D Básicas

  • Translação:

    • x’ = x + tx

    • y’ = y + ty

  • Escalamento:

    • x’ = x * sx

    • y’ = y * sy

  • Rotação:

    • x’ = x*cosQ - y*sinQ

    • y’ = x*sinQ + y*cosQ

Podem ser combinadascom álgebra simples

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Transforma es 2d b sicas1

Transformações 2D Básicas

  • Translação:

    • x’ = x + tx

    • y’ = y + ty

  • Escalamento:

    • x’ = x * sx

    • y’ = y * sy

  • Rotação:

    • x’ = x*cosQ - y*sinQ

    • y’ = x*sinQ + y*cosQ

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Inf 1366 computa o gr fica interativa transforma es

Transformações 2D Básicas

  • Translação:

    • x’ = x + tx

    • y’ = y + ty

  • Escalamento:

    • x’ = x * sx

    • y’ = y * sy

  • Rotação:

    • x’ = x*cosQ - y*sinQ

    • y’ = x*sinQ + y*cosQ

(x,y)

(x’,y’)

x’ = x*sx

y’ = y*sy

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Inf 1366 computa o gr fica interativa transforma es

Transformações 2D Básicas

  • Translação:

    • x’ = x + tx

    • y’ = y + ty

  • Escalamento:

    • x’ = x * sx

    • y’ = y * sy

  • Rotação:

    • x’ = x*cosQ - y*sinQ

    • y’ = x*sinQ+ y*cosQ

(x’,y’)

x’ = (x*sx) *cosQ - (y*sy) * sinQ

y’ = (x*sx) * sinQ + (y*sy) * cosQ

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Inf 1366 computa o gr fica interativa transforma es

Transformações 2D Básicas

  • Translação:

    • x’ = x + tx

    • y’ = y + ty

  • Escalamento:

    • x’ = x * sx

    • y’ = y * sy

  • Rotação:

    • x’ = x*cosQ - y*sinQ

    • y’ = x*sinQ + y*cosQ

(x’,y’)

x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx

y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Representa o matricial

Representação Matricial

  • Representar transformação 2D por uma matriz

  • Multiplicar matriz por vetor-coluna aplicar transformação a um ponto

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Representa o matricial1

Representação Matricial

  • Transformações são combinadas por multiplicação de matrizes

  • Matrizes são uma forma conveniente e eficiente

  • de representar uma seqüência de transformações

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Produto de matrizes

Produto de Matrizes

M. Gattass, PUC-Rio

neutro:

Alberto Raposo – PUC-Rio


Matrizes 2x2

Matrizes 2x2

  • Que transformações planares podem ser representadas com uma matriz 2x2?

Identidade 2D?

Escalemento 2D em torno de (0,0)?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Matrizes 2x21

Matrizes 2x2

  • Que transformações planares podem ser representadas com uma matriz 2x2?

Rotação 2D em torno de (0,0)?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Matrizes 2x22

Matrizes 2x2

  • Que transformações planares podem ser representadas com uma matriz 2x2?

Espelhamento 2D em torno de Y?

Espelhamento 2D em torno de (0,0)?

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Matrizes 2x23

Matrizes 2x2

  • Que transformações planares podem ser representadas com uma matriz 2x2?

Translação 2D?

NÃO!

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Coordenadas homog neas

Coordenadas Homogêneas

  • Como representar uma translação como matriz 3x3?

Alberto Raposo – PUC-Rio


Coordenadas homog neas1

Coordenadas Homogêneas

  • Coordenadas homogêneas

    • representam coordenadas em 2 dimensões com vetor 3

  • Coordenadas Homogêneas parecem pouco intuitivas, mas elas simplificam muito as operações gráficas

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Coordenadas homog neas2

Coordenadas Homogêneas

  • Como representar uma translação como matriz 3x3?

D. Brogan, Univ. of Virginia

Resp: Usando a terceiracoluna da matriz

Alberto Raposo – PUC-Rio


Transla o

Translação

  • Coordenadas Homogêneas

  • Exemplo

tx = 2ty= 1

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Coordenadas homog neas3

y

2

(2,1,1)

or (4,2,2)

or (6,3,3)

1

x

2

1

Coordenadas Homogêneas

  • Coloca uma 3a coordenada para cada ponto 3D

    • (x, y, w) representa um ponto em (x/w, y/w)

    • (x, y, 0) representa um ponto no infinito

    • (0, 0, 0) não é permitido

Sistema conveniente para representar muitas transformações úteis em CG

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Transforma es 2d b sicas2

Transformações 2D Básicas

  • Representação em matrizes 3x3

Translação

Escalamento

Rotação

Cisalhamento (Shear)

Alberto Raposo – PUC-Rio


Cisalhamento shear

Cisalhamento (Shear)

M. Gattass, PUC-Rio

y

y

x

x

Alberto Raposo – PUC-Rio


Concatena o de transforma es

y

y

x

x

y

y

x

x

y

y

x

x

Concatenação de Transformações

T1

T2

R1

R2

E

M. Gattass, PUC-Rio

P’= T2 R2E R1 T1 P

Alberto Raposo – PUC-Rio


Composi o de matrizes

Composição de Matrizes

  • Transformações podem ser combinadas pela multiplicação de matrizes

p’ = T(tx,ty) R(Q) S(sx,sy) p

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Composi o de matrizes1

Composição de Matrizes

  • Atenção: ordem das transformações faz diferença

    • Multiplicação de matrizes não é comutativa

p’ = T * R * S * p

“Global”

“Local”

Alberto Raposo – PUC-Rio


Ordem das transforma es

y

T

R

x

y

x

y

y

y

T

R

x

x

x

Ordem das Transformações

(a)

(b)

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio


Ordem das transforma es1

Ordem das Transformações

  • Ex: rotacionar segmento em 45 graus em torno da extremidade a

Resultado esperado

a

a

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Ordem das transforma es2

a

?

Correto

T(-3) R(45) T(3)

Como trazer o ponto a devolta à posição original??

Ordem das Transformações

  • Erro: aplicar a rotação de 45o, R(45), afeta as duas extremidades

    • Pode-se tentar fazer a rotação e depois retornar o ponto a à sua posição original, mas quanto ele precisaria ser transladado?

a

a

Errado!

R(45)

Alberto Raposo – PUC-Rio

D. Brogan, Univ. of Virginia


Ordem das transforma es3

Ordem das Transformações

a

  • Correto: isolar ponto a dos efeitosda rotação

    • Transladar a linha para colocar a na origem: T (-3)

    • Rotacionar linha em 45o: R(45)

    • Transladar a de volta: T(3)

a

a

a

Alberto Raposo – PUC-Rio

D. Brogan, Univ. of Virginia


Composi o de matrizes2

Composição de Matrizes

T(3) R(45) T(-3)

A multiplicação começa da última para a primeira transformação

Alberto Raposo – PUC-Rio


Composi o de matrizes3

Composição de Matrizes

  • Depois de ordenar as matrizes corretamente:

    • Multiplicá-las

    • Guardar resultado em uma só matriz

    • Usar essa matriz para realizar a transformação composta em cada um dos pontos que definem o objeto transformado (vértices, por exemplo)

  • Todos os vértices podem ser transformados com uma simples multiplicação de vetor por matriz.

Alberto Raposo – PUC-Rio


Exerc cio 2d

Exercício 2D

  • Considere o triângulo com os seguintes vértices em coordenadashomogêneas

    • Rotacione o triângulode 90o (sentido anti-horário) em relação aoponto P = (6,5)

y

C

P

A

B

x

Alberto Raposo – PUC-Rio


Etapas da solu o

Etapas da Solução

  • Definir matriz para transladar o triângulo de modo que o centro de rotação se mova para a origem do sistema de coordenadas

  • Definir matriz para rotacionar o triângulo

  • Definir matriz para transladar o triângulo de volta

  • Gerar matriz combinada da transformação

  • Transformar os vértices do triângulo

Alberto Raposo – PUC-Rio


Etapas da solu o1

Etapas da Solução

  • Definir matriz para transladar o triângulo de modo que o centro de rotação se mova para a origem do sistema de coordenadas

    • Centro de rotação: P = (6,5)

    • Translação de -6 unidades em x e -5 unidades em y

Alberto Raposo – PUC-Rio


Etapas da solu o2

Etapas da Solução

  • Definir matriz para rotacionar o triângulo

    • O ângulo de rotação é medido no sentido anti-horário: R(+90o)

      • cos(90o) = 0 e sin(90o) = 1

Alberto Raposo – PUC-Rio


Etapas da solu o3

Etapas da Solução

  • Definir matriz para transladar o triângulo de volta

    • Translação de 6 unidades em x e 5 unidades em y

Alberto Raposo – PUC-Rio


Etapas da solu o4

Etapas da Solução

  • Gerar matriz combinada da transformação

=

Alberto Raposo – PUC-Rio


Etapas da solu o5

B’

C’

= A’

Etapas da Solução

  • Transformar os vértices do triângulo

y

C

P

A

B

x

Alberto Raposo – PUC-Rio


Transforma es em 3d

Transformações em 3D

  • Mesma idéia que em 2D:

    • Coordenadas homogêneas: (x,y,z,w)

    • Matrizes de trasnformação 4x4

Alberto Raposo – PUC-Rio


Transforma es 3d b sicas

Transformações 3D Básicas

Identidade

Escalamento

Translação

D. Brogan, Univ. of Virginia

Alberto Raposo – PUC-Rio


Transforma es 3d b sicas1

Transformações 3D Básicas

Espelhamento em torno do

plano XZ

Espelhamento em torno do

plano YZ

Espelhamento em torno do

plano XY

Alberto Raposo – PUC-Rio


Transforma es 3d b sicas2

Transformações 3D Básicas

Rotação em torno de Z:

Rotação em torno de Y:

Rotação em torno de X:

Alberto Raposo – PUC-Rio


Rota es reversas

Rotações Reversas

  • Como desfazer uma rotaçãoR(q)?

    • Aplicar o inverso da rotação: R(-q)

  • Construindo R(-q) :

    • cos(-q) = cos(q)

    • sin (-q) = - sin (q)

  • Assim: R(-q) = RT(q)

Alberto Raposo – PUC-Rio


Exerc cio 3d

Exercício 3D

  • Encontre as respectivas matrizes de transformação para os seguintes casos

  • Translação que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

  • Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

  • Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

    • Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio


Solu o

Solução

  • Translação que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Matriz de translação 

Alberto Raposo – PUC-Rio


Solu o1

Solução

  • Escalamento que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Matriz de escalamento 

Alberto Raposo – PUC-Rio


Solu o2

Solução

  • Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Para rotação em torno de z:

(2) – (1):

Alberto Raposo – PUC-Rio


Solu o3

Solução

  • Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

Substituindo em (1) ou (2):

Matriz de rotação 

Alberto Raposo – PUC-Rio


Solu o4

Solução

  • Rotação em torno do eixo z que leva o ponto p1 = (a1, b1, c1) para o ponto p2 = (a2, b2, c2)

    • Qual o ângulo dessa rotação?

Alberto Raposo – PUC-Rio


Ngulos de euler

Ângulos de Euler

Fundamentos da Comp. Gráfica

Jonas Gomes, Luiz Velho

Alberto Raposo – PUC-Rio


Ngulos de euler1

Ângulos de Euler

z

z

z

qz

y

y

y

qy

qx

x

x

x

Notação: cx = cos(x); sx = sin(x) e assim por diante

Alberto Raposo – PUC-Rio

M. Gattass, PUC-Rio


Inf 1366 computa o gr fica interativa transforma es

Alberto Raposo – PUC-Rio


Demo ngulos de euler

Demo: Ângulos de Euler

http://prt.fernuni-hagen.de/lehre/KURSE/PRT001/course_main/node10.html

Alberto Raposo – PUC-Rio


Bibliografia adicional

Bibliografia Adicional

  • Peter Shirley, Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002.

  • Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics,  Addison-Wesley, 1995.

  • Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Computer Graphics: Principles and Practices, (Systems Programming), 2nd edition in C, Addison-Wesley, 1995.

  • Brutzman, D. e Daly, L., Extensible 3D Graphics for Web Authors, Morgan Kaufmann, 2007.

  • The Annotated VRML 97 Reference: http://accad.osu.edu/~pgerstma/class/vnv/resources/info/AnnotatedVrmlRef/Book.html

Alberto Raposo – PUC-Rio


  • Login