A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Transformações Alberto B. Raposo

Apresentações semelhantes


Apresentação em tema: "Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Transformações Alberto B. Raposo"— Transcrição da apresentação:

1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Transformações Alberto B. Raposo

2 Alberto Raposo – PUC-Rio 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

3 Alberto Raposo – PUC-Rio 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

4 Alberto Raposo – PUC-Rio etc... Exemplo 1 Partes do objeto definidas em sistemas de coordenadas locais: Objeto montado por meio de transformação das partes constituintes: John Dingliana, 2004

5 Alberto Raposo – PUC-Rio 5 etapas de uma animação de um cubo girando 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). John Dingliana, 2004

6 Alberto Raposo – PUC-Rio 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

7 Alberto Raposo – PUC-Rio 1,1.4, 2 TRANSFORMAÇÃO DE OBJETO (1,1) TRANSFORMAÇÃO DE COORDENADAS John Dingliana, 2004

8 Alberto Raposo – PUC-Rio Classes de Transformações Euclidianas / Corpos Rígidos de Similaridade Lineares Afins Projetivas

9 Alberto Raposo – PUC-Rio Transformações Euclidianas Preservam distâncias Preservam ângulos Translação Rotação Corpos Rígidos / Euclidianas Identidade Translação Rotação MIT EECS 6.837, Durand and Cutler

10 Alberto Raposo – PUC-Rio Transformações de Similaridade Preservam ângulos Translação Rotação Euclidianas Similaridades Escalamento Isotrópico Identidade MIT EECS 6.837, Durand and Cutler Escalamento Isotrópico

11 Alberto Raposo – PUC-Rio Transformações Lineares Translação Rotação Euclidianas Linear Similaridades Escalaento Isotrópico Identidade Escalamento Shear Reflexão EscalamentoReflexãoShear MIT EECS 6.837, Durand and Cutler

12 Alberto Raposo – PUC-Rio Transformações Lineares L(p + q) = L(p) + L(q) L(ap) = a L(p) MIT EECS 6.837, Durand and Cutler

13 Alberto Raposo – PUC-Rio Transformações Afins Preservam linhas paralelas Afins Translação Rotação Euclidianas Linear Similaridades Escalaento Isotrópico Identidade Escalamento Shear Reflexão

14 Alberto Raposo – PUC-Rio Transformações Projetivas preservam linhas Projetivas Perspectiva Afins Translação Rotação Euclidianas Linear Similaridades Escalaento Isotrópico Identidade Escalamento Shear Reflexão

15 Alberto Raposo – PUC-Rio Perpectiva Perspectiva é um dos fatores que dá aparência 3D às cenas

16 Alberto Raposo – PUC-Rio Transformações 2D Escalamento Rotação Translação Escalamento Translação x y Coordenadas do mundo Coordenadas de modelagem D. Brogan, Univ. of Virginia

17 Alberto Raposo – PUC-Rio Transformações 2D x y Coordenadas de modelagem Localização inicial em (0, 0) com eixos x e y alinhados D. Brogan, Univ. of Virginia

18 Alberto Raposo – PUC-Rio Transformações 2D x y Coordenadas de modelagem Scale.3,.3 Rotate -90 Translate 5, 3 D. Brogan, Univ. of Virginia

19 Alberto Raposo – PUC-Rio Transformações 2D x y Coordenadas de modelagem Scale.3,.3 Rotate -90 Translate 5, 3 D. Brogan, Univ. of Virginia

20 Alberto Raposo – PUC-Rio Transformações 2D x y Coordenadas de modelagem Scale.3,.3 Rotate -90 Translate 5, 3 D. Brogan, Univ. of Virginia

21 Alberto Raposo – PUC-Rio VRML: Nó Transform

22 Alberto Raposo – PUC-Rio Exemplo em VRML The Annotated VRML Reference

23 Alberto Raposo – PUC-Rio Exemplo em VRML

24 Alberto Raposo – PUC-Rio X3D – Nó Transform

25 Alberto Raposo – PUC-Rio Exemplo em X3D

26 Alberto Raposo – PUC-Rio A ordem das transformações faz diferença!

27 Alberto Raposo – PUC-Rio 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

28 Alberto Raposo – PUC-Rio Escalamento não-isotrópico: valores escalares diferentes por componente: Como representar o escalamento na forma de matrizes? Escalamento X 2, Y 0.5 D. Brogan, Univ. of Virginia

29 Alberto Raposo – PUC-Rio Escalamento Operação de escalamento: Na forma matricial: Matriz de escalamento D. Brogan, Univ. of Virginia

30 Alberto Raposo – PUC-Rio Rotação 2D P Q R PXPX PYPY [1] [2] [3] [4] [1] Substituindo de [3] e [4]… Similarmente, a partir de [2]… John Dingliana, 2004

31 Alberto Raposo – PUC-Rio Rotação 2D (x, y) x = x cos( ) - y sin( ) y = x sin( ) + y cos( ) D. Brogan, Univ. of Virginia

32 Alberto Raposo – PUC-Rio Rotação 2D Na forma matricial: Embora sin( ) e cos( ) sejam funções não- lineares de, –x é combinação linear de x e y –y é combinação linear de x e y D. Brogan, Univ. of Virginia

33 Alberto Raposo – PUC-Rio Translação 2D y x x y M. Gattass, PUC-Rio

34 Alberto Raposo – PUC-Rio Transformações 2D Básicas Translação: –x = x + t x –y = y + t y Escalamento: –x = x * s x –y = y * s y Rotação: –x = x*cos - y*sin –y = x*sin + y*cos Podem ser combinadas com álgebra simples D. Brogan, Univ. of Virginia

35 Alberto Raposo – PUC-Rio Transformações 2D Básicas Translação: –x = x + t x –y = y + t y Escalamento: –x = x * s x –y = y * s y Rotação: –x = x*cos - y*sin –y = x*sin + y*cos D. Brogan, Univ. of Virginia

36 Alberto Raposo – PUC-Rio Translação: –x = x + t x –y = y + t y Escalamento: –x = x * s x –y = y * s y Rotação: –x = x*cos - y*sin –y = x*sin + y*cos x = x*s x y = y*s y (x,y) Transformações 2D Básicas D. Brogan, Univ. of Virginia

37 Alberto Raposo – PUC-Rio x = (x*s x ) *cos - (y*s y ) * sin y = (x*s x ) * sin + (y*s y ) * cos (x,y) Translação: –x = x + t x –y = y + t y Escalamento: –x = x * s x –y = y * s y Rotação: –x = x*cos - y*sin –y = x*sin + y*cos D. Brogan, Univ. of Virginia Transformações 2D Básicas

38 Alberto Raposo – PUC-Rio Translação: –x = x + t x –y = y + t y Escalamento: –x = x * s x –y = y * s y Rotação: –x = x*cos - y*sin –y = x*sin + y*cos x = ((x*s x )*cos - (y*s y )*sin ) + t x y = ((x*s x )*sin + (y*s y )*cos ) + t y (x,y) D. Brogan, Univ. of Virginia Transformações 2D Básicas

39 Alberto Raposo – PUC-Rio 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

40 Alberto Raposo – PUC-Rio 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

41 Alberto Raposo – PUC-Rio Produto de Matrizes neutro: M. Gattass, PUC-Rio

42 Alberto Raposo – PUC-Rio 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

43 Alberto Raposo – PUC-Rio Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? D. Brogan, Univ. of Virginia Rotação 2D em torno de (0,0)?

44 Alberto Raposo – PUC-Rio Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? D. Brogan, Univ. of Virginia Espelhamento 2D em torno de Y? Espelhamento 2D em torno de (0,0)?

45 Alberto Raposo – PUC-Rio Matrizes 2x2 Que transformações planares podem ser representadas com uma matriz 2x2? D. Brogan, Univ. of Virginia Translação 2D? NÃO!

46 Alberto Raposo – PUC-Rio Coordenadas Homogêneas Como representar uma translação como matriz 3x3?

47 Alberto Raposo – PUC-Rio 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

48 Alberto Raposo – PUC-Rio Coordenadas Homogêneas Como representar uma translação como matriz 3x3? Resp: Usando a terceira coluna da matriz D. Brogan, Univ. of Virginia

49 Alberto Raposo – PUC-Rio Translação Exemplo t x = 2 t y = 1 Coordenadas Homogêneas D. Brogan, Univ. of Virginia

50 Alberto Raposo – PUC-Rio 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 (2,1,1) or (4,2,2)or (6,3,3) x y D. Brogan, Univ. of Virginia

51 Alberto Raposo – PUC-Rio Transformações 2D Básicas Representação em matrizes 3x3 Translação Rotação Cisalhamento (Shear) Escalamento

52 Alberto Raposo – PUC-Rio Cisalhamento (Shear) x y x y M. Gattass, PUC-Rio

53 Alberto Raposo – PUC-Rio Concatenação de Transformações x y x y x y x y x y x y T1T1 R1R1 E R2R2 T2T2 P= T 2 R 2 E R 1 T 1 P M. Gattass, PUC-Rio

54 Alberto Raposo – PUC-Rio Composição de Matrizes Transformações podem ser combinadas pela multiplicação de matrizes p = T(t x,t y ) R( ) S(s x,s y ) p D. Brogan, Univ. of Virginia

55 Alberto Raposo – PUC-Rio 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 GlobalLocal

56 Alberto Raposo – PUC-Rio Ordem das Transformações x y R x y T x y R x y x y T (a) (b) M. Gattass, PUC-Rio

57 Alberto Raposo – PUC-Rio Ordem das Transformações Ex: rotacionar segmento em 45 graus em torno da extremidade a aa Resultado esperado D. Brogan, Univ. of Virginia

58 Alberto Raposo – PUC-Rio Ordem das Transformações Erro: aplicar a rotação de 45 o, 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? Errado! R(45) a a Correto T(-3) R(45) T(3) a D. Brogan, Univ. of Virginia Como trazer o ponto a de volta à posição original?? ?

59 Alberto Raposo – PUC-Rio Ordem das Transformações Correto: isolar ponto a dos efeitos da rotação 1.Transladar a linha para colocar a na origem: T (-3) 2.Rotacionar linha em 45 o : R(45) 3.Transladar a de volta: T(3) a a a a D. Brogan, Univ. of Virginia

60 Alberto Raposo – PUC-Rio Composição de Matrizes T(3) R(45) T(-3) A multiplicação começa da última para a primeira transformação

61 Alberto Raposo – PUC-Rio 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.

62 Alberto Raposo – PUC-Rio Exercício 2D Considere o triângulo com os seguintes vértices em coordenadas homogêneas –Rotacione o triângulo de 90 o (sentido anti- horário) em relação ao ponto P = (6,5) y x C BA P

63 Alberto Raposo – PUC-Rio Etapas da Solução 1.Definir matriz para transladar o triângulo de modo que o centro de rotação se mova para a origem do sistema de coordenadas 2.Definir matriz para rotacionar o triângulo 3.Definir matriz para transladar o triângulo de volta 4.Gerar matriz combinada da transformação 5.Transformar os vértices do triângulo

64 Alberto Raposo – PUC-Rio Etapas da Solução 1.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

65 Alberto Raposo – PUC-Rio Etapas da Solução 2.Definir matriz para rotacionar o triângulo O ângulo de rotação é medido no sentido anti- horário: R(+90 o ) cos(90 o ) = 0 e sin(90 o ) = 1

66 Alberto Raposo – PUC-Rio Etapas da Solução 3.Definir matriz para transladar o triângulo de volta Translação de 6 unidades em x e 5 unidades em y

67 Alberto Raposo – PUC-Rio Etapas da Solução 4.Gerar matriz combinada da transformação =

68 Alberto Raposo – PUC-Rio Etapas da Solução 5.Transformar os vértices do triângulo y x C BA P B = A C

69 Alberto Raposo – PUC-Rio Transformações em 3D Mesma idéia que em 2D: –Coordenadas homogêneas: (x,y,z,w) –Matrizes de trasnformação 4x4

70 Alberto Raposo – PUC-Rio Transformações 3D Básicas Identidade Escalamento Translação D. Brogan, Univ. of Virginia

71 Alberto Raposo – PUC-Rio Transformações 3D Básicas Espelhamento em torno do plano YZ Espelhamento em torno do plano XZ Espelhamento em torno do plano XY

72 Alberto Raposo – PUC-Rio Transformações 3D Básicas Rotação em torno de Z: Rotação em torno de Y: Rotação em torno de X:

73 Alberto Raposo – PUC-Rio Rotações Reversas Como desfazer uma rotação R( )? –Aplicar o inverso da rotação: R(- ) Construindo R(- ) : –cos(- ) = cos( ) –sin (- ) = - sin ( ) Assim: R(- ) = R T ( )

74 Alberto Raposo – PUC-Rio Exercício 3D Encontre as respectivas matrizes de transformação para os seguintes casos a)Translação que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) b)Escalamento que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) c)Rotação em torno do eixo z que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Qual o ângulo dessa rotação?

75 Alberto Raposo – PUC-Rio Solução a)Translação que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Matriz de translação

76 Alberto Raposo – PUC-Rio Solução b)Escalamento que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Matriz de escalamento

77 Alberto Raposo – PUC-Rio Solução c)Rotação em torno do eixo z que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Para rotação em torno de z: (2) – (1):

78 Alberto Raposo – PUC-Rio Solução c)Rotação em torno do eixo z que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Matriz de rotação Substituindo em (1) ou (2):

79 Alberto Raposo – PUC-Rio Solução c)Rotação em torno do eixo z que leva o ponto p 1 = (a 1, b 1, c 1 ) para o ponto p 2 = (a 2, b 2, c 2 ) Qual o ângulo dessa rotação?

80 Alberto Raposo – PUC-Rio Ângulos de Euler Fundamentos da Comp. Gráfica Jonas Gomes, Luiz Velho

81 Alberto Raposo – PUC-Rio Ângulos de Euler x x y z y x y z z x y z M. Gattass, PUC-Rio Notação: c x = cos( x ); s x = sin( x ) e assim por diante

82 Alberto Raposo – PUC-Rio

83 Demo: Ângulos de Euler

84 Alberto Raposo – PUC-Rio Bibliografia Adicional Peter Shirley, Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 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, Brutzman, D. e Daly, L., Extensible 3D Graphics for Web Authors, Morgan Kaufmann, The Annotated VRML 97 Reference: VrmlRef/Book.html


Carregar ppt "Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Transformações Alberto B. Raposo"

Apresentações semelhantes


Anúncios Google