SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
COMPUTAÇÃO GRÁFICA
  Transformações geométricas




MARCO ANTONIO GARCIA DE CARVALHO   Computação Gráfica
Fevereiro de 2009
Objetivos
 •    Entender    os    princípios  da
 transformações geométricas do tipo
 translação, rotação e escalamento.

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



MARCO ANTONIO GARCIA DE CARVALHO   Computação Gráfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
Translação
       EXEMPLO 2D

                    y



                        posição inicial
                                          posição final




                                                          x




MARCO ANTONIO GARCIA DE CARVALHO                              Computação Gráfica
Fevereiro de 2009
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      14

MARCO ANTONIO GARCIA DE CARVALHO                                                                Computação Gráfica
Fevereiro de 2009
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=   dy



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.
MARCO ANTONIO GARCIA DE CARVALHO                           Computação Gráfica
Fevereiro de 2009
Escala
       EXEMPLO 2D


   y                                   y



       situação inicial



                                           situação final

                                   x                                             x




MARCO ANTONIO GARCIA DE CARVALHO                            Computação Gráfica
Fevereiro de 2009
Escala
       EXEMPLO 2D
                                         Novo objeto para sx = 2
                                         e sy = 2

4

          P4            P3
2

                                                        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 final

MARCO ANTONIO GARCIA DE CARVALHO                                                    Computação Gráfica
Fevereiro de 2009
Escala
• Escalamento pode tornar um objeto maior
ou menor. A equação abaixo define essa
operação.
                                           P’ = S · P

 tal que, para o caso 2D
                    x                     x'                 sx   0
             P=     y              P’ =   y’            S=   0    sy




MARCO ANTONIO GARCIA DE CARVALHO                                       Computação Gráfica
Fevereiro de 2009
Rotação

      EXEMPLO 2D

 y                                     y



     situação inicial                      situação final




                                   x                                        x




MARCO ANTONIO GARCIA DE CARVALHO                            Computação Gráfica
Fevereiro de 2009
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 final
MARCO ANTONIO GARCIA DE CARVALHO                                                         Computação Gráfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
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 original

MARCO ANTONIO GARCIA DE CARVALHO                            Computação Gráfica
Fevereiro de 2009
Coordenadas homogêneas
• As operações matriciais diferem entre
adiçã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áfica
Fevereiro de 2009
Coordenadas homogêneas
• Todas as transformações são tratadas
através de multiplicações. Portanto, podemos
usar a expressão:


                          P’ = (R ou S ou T) · P




MARCO ANTONIO GARCIA DE CARVALHO                   Computação Gráfica
Fevereiro de 2009
Coordenadas homogêneas
• Em coordenadas homogêneas, uma terceira
coordenada é adicionada (caso 2D)
                                    x
                          P=        y
                                    1


E as transformações são escritas na forma:
         1 0 dx                         cosθ -sinθ 0        sx 0 0
T=       0 1 dy                R=       sinθ cosθ 0    S=   0 sy 0
         0 0 1                          0    0     1        0 0 1


MARCO ANTONIO GARCIA DE CARVALHO                              Computação Gráfica
Fevereiro de 2009
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   1




MARCO ANTONIO GARCIA DE CARVALHO                          Computação Gráfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
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θ 0
Rz (θ) =                                   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      1
MARCO ANTONIO GARCIA DE CARVALHO                                            Computação Gráfica
Fevereiro de 2009
Transformações 3D
• Outras transformações
     Cisalhamento                  Reflexão




MARCO ANTONIO GARCIA DE CARVALHO         Computação Gráfica
Fevereiro de 2009
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();

MARCO ANTONIO GARCIA DE CARVALHO            Computação Gráfica
Fevereiro de 2009
Transformações - OpenGL
• O OpenGL trabalha com matrizes de
transformaçõ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áfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
Transformações - OpenGL
 • OpenGL: escopo das transformações...

    glRotatef(...);
    glPushMatrix ();
    Objeto1
                                   glPushMatrix ();
    glPopMatrix ();
                                   glRotatef(...);
     Objeto2
                                   Objeto1

                                   glPopMatrix ();
                                   Objeto2
MARCO ANTONIO GARCIA DE CARVALHO                     Computação Gráfica
Fevereiro de 2009
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áfica
Fevereiro de 2009
Para saber mais:
            [MANSSOUR06] Capítulo 9

            [ANGEL97] Capítulo 4

            Executar programas do Nate Robins




MARCO ANTONIO GARCIA DE CARVALHO           Computação Gráfica
Fevereiro de 2009

Weitere ähnliche Inhalte

Andere mochten auch

Geometria E Arte
Geometria E ArteGeometria E Arte
Geometria E Artelerita
 
Simetria em nosso cotidiano
Simetria em nosso cotidianoSimetria em nosso cotidiano
Simetria em nosso cotidianoJoeanechegatti
 
Livro geometria na arte
Livro geometria na arteLivro geometria na arte
Livro geometria na arteElias Brito
 
As formas geométricas nas artes
As formas geométricas nas artesAs formas geométricas nas artes
As formas geométricas nas artesdanielapistoni
 
A Geometria da Arte
A Geometria da ArteA Geometria da Arte
A Geometria da ArteSuzy Nobre
 
Isometrias porto ed[1]
Isometrias porto ed[1]Isometrias porto ed[1]
Isometrias porto ed[1]mariacferreira
 

Andere mochten auch (6)

Geometria E Arte
Geometria E ArteGeometria E Arte
Geometria E Arte
 
Simetria em nosso cotidiano
Simetria em nosso cotidianoSimetria em nosso cotidiano
Simetria em nosso cotidiano
 
Livro geometria na arte
Livro geometria na arteLivro geometria na arte
Livro geometria na arte
 
As formas geométricas nas artes
As formas geométricas nas artesAs formas geométricas nas artes
As formas geométricas nas artes
 
A Geometria da Arte
A Geometria da ArteA Geometria da Arte
A Geometria da Arte
 
Isometrias porto ed[1]
Isometrias porto ed[1]Isometrias porto ed[1]
Isometrias porto ed[1]
 

Kürzlich hochgeladen

Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxKtiaOliveira68
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasillucasp132400
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -Aline Santana
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxleandropereira983288
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...ArianeLima50
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 

Kürzlich hochgeladen (20)

Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
Orações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptxOrações subordinadas substantivas (andamento).pptx
Orações subordinadas substantivas (andamento).pptx
 
Governo Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 BrasilGoverno Provisório Era Vargas 1930-1934 Brasil
Governo Provisório Era Vargas 1930-1934 Brasil
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
DESAFIO LITERÁRIO - 2024 - EASB/ÁRVORE -
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
Pedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptxPedologia- Geografia - Geologia - aula_01.pptx
Pedologia- Geografia - Geologia - aula_01.pptx
 
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
Cultura e Literatura indígenas: uma análise do poema “O silêncio”, de Kent Ne...
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 

Transformações geométricas em CG

  • 1. COMPUTAÇÃO GRÁFICA Transformações geométricas MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 2. Objetivos • Entender os princípios da transformações geométricas do tipo translação, rotação e escalamento. • Efetuar transformações geométricas utilizando coordenadas homogêneas. MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 5. Translação EXEMPLO 2D y posição inicial posição final x MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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 14 MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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= dy 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. MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 8. Escala EXEMPLO 2D y y situação inicial situação final x x MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 9. Escala EXEMPLO 2D Novo objeto para sx = 2 e sy = 2 4 P4 P3 2 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 final MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 10. Escala • Escalamento pode tornar um objeto maior ou menor. A equação abaixo define essa operação. P’ = S · P tal que, para o caso 2D x x' sx 0 P= y P’ = y’ S= 0 sy MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 11. Rotação EXEMPLO 2D y y situação inicial situação final x x MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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 final MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 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 original MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 16. Coordenadas homogêneas • As operações matriciais diferem entre adiçã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áfica Fevereiro de 2009
  • 17. Coordenadas homogêneas • Todas as transformações são tratadas através de multiplicações. Portanto, podemos usar a expressão: P’ = (R ou S ou T) · P MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 18. Coordenadas homogêneas • Em coordenadas homogêneas, uma terceira coordenada é adicionada (caso 2D) x P= y 1 E as transformações são escritas na forma: 1 0 dx cosθ -sinθ 0 sx 0 0 T= 0 1 dy R= sinθ cosθ 0 S= 0 sy 0 0 0 1 0 0 1 0 0 1 MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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 1 MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 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θ 0 Rz (θ) = 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 1 MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 22. Transformações 3D • Outras transformações Cisalhamento Reflexão MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 23. 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(); MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 24. Transformações - OpenGL • O OpenGL trabalha com matrizes de transformaçõ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áfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 26. Transformações - OpenGL • OpenGL: escopo das transformações... glRotatef(...); glPushMatrix (); Objeto1 glPushMatrix (); glPopMatrix (); glRotatef(...); Objeto2 Objeto1 glPopMatrix (); Objeto2 MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009
  • 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áfica Fevereiro de 2009
  • 28. Para saber mais: [MANSSOUR06] Capítulo 9 [ANGEL97] Capítulo 4 Executar programas do Nate Robins MARCO ANTONIO GARCIA DE CARVALHO Computação Gráfica Fevereiro de 2009