COMPUTAÇÃO GRÁFICA  Transformações geométricasMARCO ANTONIO GARCIA DE CARVALHO   Computação GráficaFevereiro de 2009
Objetivos •    Entender    os    princípios  da transformações geométricas do tipo translação, rotação e escalamento.• Efe...
Fundamentos • Transformações geométricas envolvem operações com vetores e matrizes, do tipo soma    e   multiplicação,    ...
Transformações básicas - OpenGL • Translação         glTranslatef(dx, dy, dz); • Escalamento              glScalef(sx, sy,...
Translação       EXEMPLO 2D                    y                        posição inicial                                   ...
Translação       EXEMPLO 2D                                                                        Nova posição da figura ...
Translação • É uma operação que desloca pontos em uma determinada direção. Define-se através da equação:                  ...
Escala       EXEMPLO 2D   y                                   y       situação inicial                                    ...
Escala       EXEMPLO 2D                                         Novo objeto para sx = 2                                   ...
Escala• Escalamento pode tornar um objeto maiorou menor. A equação abaixo define essaoperação.                            ...
Rotação      EXEMPLO 2D y                                     y     situação inicial                      situação final  ...
Rotação       EXEMPLO 2D                                         Novo objeto para θ =                                     ...
Rotação • Rotaciona (gira) um objeto de um determinado ângulo θ. É dada pela equação:                                   P’...
Rotação / Escala   • Como pode ser visto nos desenhos   anteriores, as operações de escalamento e   rotação também desloca...
Rotação / Escala                                   Objeto que se deseja modificar                          1. Transladar o...
Coordenadas homogêneas• As operações matriciais diferem entreadição (translação) e multiplicação (rotação-escala).        ...
Coordenadas homogêneas• Todas as transformações são tratadasatravés de multiplicações. Portanto, podemosusar a expressão: ...
Coordenadas homogêneas• Em coordenadas homogêneas, uma terceiracoordenada é adicionada (caso 2D)                          ...
Transformações 3D• Matrizes de transformações para o caso 3D                 Translação                 Escala            ...
Transformações 3D• Matrizes de transformações para o caso 3D          Rotação                           y                 ...
Transformações 3D• Matrizes de transformações para o caso 3D           Rotação            cosθ   -sinθ   0 0              ...
Transformações 3D• Outras transformações     Cisalhamento                  ReflexãoMARCO ANTONIO GARCIA DE CARVALHO       ...
Transformações - OpenGL• O OpenGL trabalha com matrizes detransformações• As operações são efetuadas viamultiplicação de m...
Transformações - OpenGL• O OpenGL trabalha com matrizes detransformações...      Utiliza-se o comando glMatrixMode        ...
Transformações - OpenGL • Uma transformação pode alterar todos os objetos na sequência: não desejado, dependendo da aplica...
Transformações - OpenGL • OpenGL: escopo das transformações...    glRotatef(...);    glPushMatrix ();    Objeto1          ...
Transformações - OpenGL  void display(void){   glClear (GL_COLOR_BUFFER_BIT);   glPushMatrix();  /* Cubo 1 */    glPushMat...
Para saber mais:            [MANSSOUR06] Capítulo 9            [ANGEL97] Capítulo 4            Executar programas do Nate ...
Próximos SlideShares
Carregando em…5
×

Transformacoes

738 visualizações

Publicada em

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
738
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
27
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Transformacoes

  1. 1. COMPUTAÇÃO GRÁFICA Transformações geométricasMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  2. 2. Objetivos • Entender os princípios da transformações geométricas do tipo translação, rotação e escalamento.• Efetuar transformações geométricasutilizando coordenadas homogêneas.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  3. 3. 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.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  4. 4. Transformações básicas - OpenGL • Translação glTranslatef(dx, dy, dz); • Escalamento glScalef(sx, sy, sz); • Rotação glRotatef(ang, x, y, z);MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  5. 5. Translação EXEMPLO 2D y posição inicial posição final xMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  6. 6. Translação EXEMPLO 2D Nova posição da figura para dx = 6 e dy = 2 P5 ’ P3 ’ 8 6 P5 P3 P4 ’ 4 P4 P1 ’ P2 ’ 2 P1 = (1,1) P2 = (6,1) 0 2 4 6 8 10 12 14MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  7. 7. Translação • É uma operação que desloca pontos em uma determinada direção. Define-se através da equação: P’ = P + T tal que, para o caso 2D x x dx P= y P’ = y’ T= dyOnde x, y são os pontos originais; x’, y ’ são os pontosdeslocados; e dx, dy correspondem ao deslocamentonas direções x e y, respectivamente.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  8. 8. Escala EXEMPLO 2D y y situação inicial situação final x xMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  9. 9. Escala EXEMPLO 2D Novo objeto para sx = 2 e sy = 24 P4 P32 6 P1 = (2,1) P2 = (6,1)0 P4 ’ P3 ’ 2 4 6 8 3 Situação inicial P1’= (4,2) P2’ = (12,2) 0 3 6 9 12 Situação finalMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  10. 10. Escala• Escalamento pode tornar um objeto maiorou menor. A equação abaixo define essaoperação. P’ = S · P tal que, para o caso 2D x x sx 0 P= y P’ = y’ S= 0 syMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  11. 11. Rotação EXEMPLO 2D y y situação inicial situação final x xMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  12. 12. Rotação EXEMPLO 2D Novo objeto para θ = 45º 4 P4 P3 2 P3 ’ P1 = (2,1) P2 = (4,1) 0 2 4 6 8 P4 ’ P2 ’ Situação inicial 2 P1 ’ 0 2 4 6 Situação finalMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  13. 13. Rotação • Rotaciona (gira) um objeto de um determinado ângulo θ. É dada pela equação: P’ = R · P tal que, para o caso 2D x x cosθ -sinθ P= y P’ = y’ R= sinθ cosθMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  14. 14. Rotação / Escala • Como pode ser visto nos desenhos anteriores, as operações de escalamento e rotação também deslocam o objeto, pois foram definidas a partir de um ponto na origem. • Portanto, para que não ocorra translação desnecessária no objeto é preciso realizar as seguintes etapas:MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  15. 15. Rotação / Escala Objeto que se deseja modificar 1. Transladar o objeto para a origem 2. Rotacionar (ou efetuar o escalamento) 3. Transladar o objeto para a posição originalMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  16. 16. Coordenadas homogêneas• As operações matriciais diferem entreadição (translação) e multiplicação (rotação-escala). P’ = P + T P’ = R · P P’ = S · P • Uma forma de tratar as transformações através da mesma operação é expressar os pontos em COORDENADAS HOMOGÊNEAS.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  17. 17. Coordenadas homogêneas• Todas as transformações são tratadasatravés de multiplicações. Portanto, podemosusar a expressão: P’ = (R ou S ou T) · PMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  18. 18. Coordenadas homogêneas• Em coordenadas homogêneas, uma terceiracoordenada é adicionada (caso 2D) x P= y 1E as transformações são escritas na forma: 1 0 dx cosθ -sinθ 0 sx 0 0T= 0 1 dy R= sinθ cosθ 0 S= 0 sy 0 0 0 1 0 0 1 0 0 1MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  19. 19. Transformações 3D• Matrizes de transformações para o caso 3D Translação Escala 1 0 0 dx sx 0 0 0 0 1 0 dy 0 sy 0 0 T= S= 0 0 sz 0 0 0 1 dz 0 0 0 1 0 0 0 1MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  20. 20. Transformações 3D• Matrizes de transformações para o caso 3D Rotação y x Atenção!!! As rotações foram z definidas no sentido anti-horário.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  21. 21. Transformações 3D• Matrizes de transformações para o caso 3D Rotação cosθ -sinθ 0 0 1 0 0 0 sinθ cosθ 0 0 0 cosθ -sinθ 0Rz (θ) = Rx (θ) = 0 0 1 0 0 sinθ cosθ 0 0 0 0 1 0 0 0 1 cosθ 0 sinθ 0 0 1 0 0 Ry (θ) = -sinθ 0 cosθ 0 0 0 0 1MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  22. 22. Transformações 3D• Outras transformações Cisalhamento ReflexãoMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  23. 23. Transformações - OpenGL• O OpenGL trabalha com matrizes detransformações• As operações são efetuadas viamultiplicação de matrizes, de acordo com oestado existente• Portanto, é necessário “carregar” a matrizidentidade glLoadIdentity();MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  24. 24. Transformações - OpenGL• O OpenGL trabalha com matrizes detransformações... Utiliza-se o comando glMatrixMode glMatrixMode(GL_PROJECTION); Parâmetro GL_PROJECTION antes dos comandos que especificam o tipo de projeção (glOrtho, por exemplo). glMatrixMode(GL_MODELVIEW); Parâmetro GL_MODELVIEW antes de transformações geométricas.MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  25. 25. Transformações - OpenGL • 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).MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  26. 26. Transformações - OpenGL • OpenGL: escopo das transformações... glRotatef(...); glPushMatrix (); Objeto1 glPushMatrix (); glPopMatrix (); glRotatef(...); Objeto2 Objeto1 glPopMatrix (); Objeto2MARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009
  27. 27. Transformações - OpenGL 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();MARCO ANTONIO GARCIA DE CARVALHO } Computação GráficaFevereiro de 2009
  28. 28. Para saber mais: [MANSSOUR06] Capítulo 9 [ANGEL97] Capítulo 4 Executar programas do Nate RobinsMARCO ANTONIO GARCIA DE CARVALHO Computação GráficaFevereiro de 2009

×