SlideShare a Scribd company logo
1 of 23
Download to read offline
Introdução à Computação Gráfica
                DEINF-UFMA
             Prof. Anselmo Paiva
UFMA



         Transformações Geométricas
Transformações Geométricas 2D



 • Para gerar imagens bidimensionais precisamos das primitivas básicas
   (linhas, círculos, caracteres, etc.),
 • Uma vez que temos um objeto definido em termos dessas primitivas,
   as transformações permitem mudar a orientação, tamanho ou forma
   dos objetos
 • Os objetos são representados pelos pontos que o descrevem ( p = (x,y))
 • Se descrevermos as transformações de pontos, então descrevemos a
   transformação de objetos
 • Transformações 2-D :
     – Translação.
     – Escala (relativa a um ponto).
     – Rotação (em torno de um ponto).


                                         Anselmo Cardoso de Paiva - DEINF - UFMA   2
Transformações Lineares
(espelhamento)




            x´                                     x´ = -1.x
                                  x
                  y
  P´   =                  P   =                    y´ = y
            y´                    y
           P´             P
                                                                        x
                                              x´               -1   0
                                                    =
                                                                    1
                                                                0       y
                                              y´
                                      x



                                      Exercício: Deduzir as expressões
                                      para espelhamento em torno do
                                      eixo X.
Translação



 • Descrevemos a translação de um ponto (x, y) por:

                   x' =   x + tx
                  
                   y' =   y + ty
 • Ou através de soma de vetores:
                   P' = P + T
 • Onde os vetores são definidos por :

                    x             x '                 tx 
               P =  ,       P' =   ,                = 
                                                   T
                    y             y '                 ty 
                                    Anselmo Cardoso de Paiva - DEINF - UFMA   4
Translação



• Transladando cada ponto do objeto com a mesma equação,
  transladamos o objeto inteiro
• Os pontos se movem ao longo de linhas paralelas.




                                  Anselmo Cardoso de Paiva - DEINF - UFMA   5
Translação




  y
                                                                                   tx
                                                           x’
                 P’                                                      x
                                          P’ =                       =       +
                                                                                   ty
                                                           y’            y
                      tx
        P    t   =
                      ty

                      x
                                   x’           1      0        tx       x
                           P’ =           =
                                   y’           0      1        ty       y



                                        [T]
                             Matriz de Translação

                                              Anselmo Cardoso de Paiva - DEINF - UFMA   6
Escala



 • Podemos escalar as coordenadas x e y de um ponto
   de maneira independente:
           x = s x × x;         y = sy × y
 • Isso também pode ser escrito sob a forma matricial
                  x '  s x     0   x
                   = 0         s y   y
                  y '               

 • ou P ' = S × P onde S é a matriz de escala.
 •                       Se sx=sy então todos os
 •                       pontos se movem
 •                       diretamente a partir da origem
                                       Anselmo Cardoso de Paiva - DEINF - UFMA   7
Rotação


  y               x´                  Um ponto pode ser rotacionado em
        P´    =
                  y´                  torno da origem de ângulo q usando
                                      as equações
                               x
                       P   =
          q
                                             x´ = x.cos q - y.sen q
                               y
                                             y´ = x.sen q + y.cos q
                               x
                                      E na forma matricial:
                                           x´                                x
                                                      cos q     -sen q
                                                =
                                                               cos q
                                                       sen q
                                           y´                                y

                                      Ou P'= RDP onde R é a matriz de
                                      rotação
• Todos os pontos se movem ao longo de círculos concêntricos, com centro na
origem
• Uma figura que não esteja na origem sofre uma translação além da rotação
Coordenadas Homogêneas



 • Escala e rotação podem ser representadas por uma
   multiplicação de matriz, mas translação não pode.
 • Se todas as transformações pudessem ser
   representadas por matriz, multiplicando matrizes
   colocariamos várias delas juntas.
 • Isso é possíve se representarmos pontos 2D não por
   um par de números (x; y) (representado como um
   vetor unidimensional), mas se representarmos por
   por três números (X;Y;W) denominado coordenadas
   homogêneas
 • Dois conjuntos de coordenadas homogêneas
   representam o mesmo ponto 2D sss são múltiplos
   uns dos outros: (3,2,1), (6,4,2) ou (12,8,4)
                              Anselmo Cardoso de Paiva - DEINF - UFMA   9
Coordenadas homogêneas (CH)



                                              x             wx            xh
                                   x     ∆           ∆
         y                                    y             wy            yh
                         P               =           =
                             =                                       =
                                   y
                                              1                 w         w
                     P                                   Ex.:
                                                                                       6
                                                                               3               9
                                                                     3    ∆        ∆
                                                                                       4
                                                                               2               6
                                                                          =        =       =
                                                                     2
                                                                                       2
                                                                               1               3
                             x
                                         x = xh /w
                                                                    w>0
         w
                                         y = yh /w
                 y

                                       • Cada ponto 2-D possui muitas representações em CH,
     x
                                       que se forem interpretadas como pontos 3D, formam uma
                                       reta no espaço 3D passando pela origem, e pelo ponto
                             yh
              w=1
                                       2D no plano z=1.
                                       • Para obter uma única representação tratamos sempre
                                       os pontos (X;Y;W) dividino por W para obter na forma (x;
xh                                     y; 1).
Translação em coordenadas homogêneas




        y
                                                                                  tx
                                                              x’
                              P’                                        x
                                                      P’ =          =         +
                                                                                  ty
                                                              y’        y
                                   tx
                          t
                    P         =
                                   ty

                                   x
                w
                          y                                        x’         1   0    tx   x
                                                         x’
                                             P’                    y’         0   1    ty   y
                          t                       =           =         =
            x                                            y’
                                                                   1          0   0    1    1
                                        yh
                        w=1

                                                                        [T]
   xh                                                         Matriz de Translação
Escala e Rotação em coordenadas homogêneas



 • Escala

                 x '  s x            0  x 
                               0
                 
                                        0  y 
                  y' = 0       sy
                                       
                 1  0                1  1 
                               0
                                       

 • Rotação

                               − sin q
              x '  cos q                   0  x 
              
                                              0  y 
               y ' = sin q     cosq
                                             
              1  0                         1  1 
                                    0
                                             


                                          Anselmo Cardoso de Paiva - DEINF - UFMA   12
Propriedades das Transformações



 • Considere as linhas da matriz de rotação 2 x 2
 • Cada linha é um vetor unitário
 • O produto escalar entre os dois vetores é zero - as
   linhas são ortogonais
 • A mesma propriedade vale para as colunas
 • Em razão dessas propriedades a matriz e
   denominada ortogonal.
 • Consequência:
    – a inversa é igual a transposta




                                  Anselmo Cardoso de Paiva - DEINF - UFMA   13
Propriedades das Transformações



 • Uma matriz da forma

                 r            tx 
                         r12
                    11
                 
                               ty 
                   r     r21
                  21             
                 0            1
                         0
                               

 • onde a submatriz da parte superior esquerda é
   ortogonal é denominada de transformação de corpo
   rígido:
    – Preserva ângulos.
    – Preserva comprimentos.
    – Pode realizar uma translação/rotação arbitrária.

                                      Anselmo Cardoso de Paiva - DEINF - UFMA   14
Propriedades das Transformações


• O produto de uma sequência arbitrária de matrizes de
  translações, escalas e rotações, é denominado uma
  transformação afim. Representada por:
                 r    r12 t x 
                    11
                 
                   r21 r21 t y 
                              
                 0     0 1
                              
onde a submatriz 2x2 superior esquerda não
  necessariamente é ortogonal
• Consequência:
   – Preserva paralelismo de retas.
   – Não necessariamente preserva ângulos ou comprimentos.
   – Pode realizar transformações de translação, escala,
     rotação, espelhamento e cisalhamento
                                   Anselmo Cardoso de Paiva - DEINF - UFMA   15
Transformação de Cisalhamento



 • Possuem uma interpretação geométrica simples:




 • São produzidas por uma matriz da seguinte forma:
             1 a 0                   1 0 0
     SH x =  0 1 0           SH y =  b 1 0
                                           
             0 0 1                   0 0 1
                                           
 •    Podem ser produzidas por uma combinação de
     rotações e escalas não uniformes
                                Anselmo Cardoso de Paiva - DEINF - UFMA   16
Concatenação de Transformações



 • Suponha que seja necessário rotacionar um objeto
   em torno de um ponto P1 = (x1; y1), diferente da
   origem
 • Não temos uma transformação que faça isso
   diretamente.
 • Essa operação pode ser realizada com uma
   sequência de transformações fundamentais.




                                 Anselmo Cardoso de Paiva - DEINF - UFMA   17
Concatenação de Transformações




• Translade o objeto de modo que
  P1 conincida com a origem.

• Rotacione em torno da origem.

• Translade de volta de modo que
  o ponto sobre a origem va para
  na posição originária de P1.




                                   Anselmo Cardoso de Paiva - DEINF - UFMA   18
Concatenação



 • Um única matriz realizando esses três passos pode
   ser obtida através da multiplicação das matrizes das
   tr6es transformações na ordem inversa em que as
   transformações foram aplicadas.
     Trot _ P1 = Torigem− > p1 Rq _ origemT p1− > origem
                                               −                                       −
                              x1   cos q         sen q
                  1                                              0  1 0                 x1 
                        0
                  
                              y1   senq                         0  0 1                 y1 
                 =0                                                                    −           =
                                                 cos q
     Trot _ P1          1
                                                                                         
                  0          1 0                               1  0 0                     
                        0                           0                                      1
                                                                                          
                              −              x1 (1 − cos q ) + y1 sin q 
                   cos q         senq
                                                                                  
                 = senq                      y1 (1 − cos q ) − x1 sin q
                               cos q
                                                                                  
                  0                                                               
                                  0                           1
                                                                                  

                                                        Anselmo Cardoso de Paiva - DEINF - UFMA        19
Concatenação - Rotação em Torno do centro do Objeto


  y    a                                                                                      y


 y0                                                                                       y0

                                      x
           x0                                                                                                                       x
                                                                                                                        x0

                    1     0 − x0 
                                                                                                                 1        x0 
                                                                                                                         0
                           1 − y0 
                    0                                                                                                        
                                                                                                                   0    1   y0 
                    0        1
                           0
                                 
  y                                                                                           y                    0        1
                                                                                                                         0
                                                                                                                               
                                                    cos a                 0
                                                               −   sin a
                                                                                          a
                                                                           
                                                    sin a     cos a       0
                                                   0                      1
                                                                 0
                                                                           


                                      x                                                                                             x


                   x '   1             x 0   c o sa                        0  1                x0   x 
                                                                    −                             −
                                                                        sin a
                                      0                                                       0
                                                                                                          
                                                                                 
                    y ' =  0                                                                    −
                                                       sin a         cosa
                                                                                                      y0  y
                                      1   y0                                    0   0       1
                                                  
                   1                                                                                1 1
                           0                                                 1   0
                                      0   1              0             0                      0
                                                                                                   
Concatenação de Transformações


       y                                    y




                             x                                                       x
                    T1                                           T2
       y                                    y




                             x                                                       x
                    R1                                           R2
                                            y
       y


                                 E

                                                                                     x
                             x


                     P’= T2 R2 E R1 T1 P
                     P’= T2 R2 E R1 T1 P   Anselmo Cardoso de Paiva - DEINF - UFMA       21
Transformações em 3D
(translações e escalas)



        y

                                   1
                          x’            0    0    tx   x
                                   0
                          y’            1    0    ty   y
                               =
                 x                 0
                          z’            0    1    tz   z
                                   0    0    0    1
                          1                            1
   z


                                   sx
                          x’            0    0    0    x
                                   0
                          y’            sy   0    0    y
                               =
                                   0
                          z’            0    sz   0    z
                                   0    0    0    1
                          1                            1
Transformações em 3D
    (Rotações)


                                       1
                            x’                     0               0         0   x
          y                            0        cos q x
                            y’                                               0   y
                                                               -sen q x
                                 =
                                                sen q x
                                       0                        cos q x
                            z’                                               0   z
              qy
                                       0
                            1                      0              0          1   1

                        x
                   qx
                            x’                                               0
                                                               sen q y
                                                       0                         x
                                      cos q y
     qz
z                                      0
                            y’                         1                     0   y
                                                                   0
                                 =
                                      -sen q y                  cos q y
                            z’                         0                     0   z
                                        0              0          0          1
                            1                                                    1


                                     cos q z
                            x’                                           0   0   x
                                                   -sen q x
                                     sen q x        cos q x
                            y’                                               0   y
                                                                         0
                                 =                     0
                                       0                                 1
                            z’                                               0   z
                                       0
                            1                              0             0   1   1

More Related Content

What's hot

9º ano do e. f. jordão souza
9º ano do e. f. jordão souza9º ano do e. f. jordão souza
9º ano do e. f. jordão souzaAug33
 
Cartografia tipos de mapas
Cartografia   tipos de mapasCartografia   tipos de mapas
Cartografia tipos de mapasSuely Takahashi
 
Sólidos geométricos 6º ano
Sólidos geométricos   6º anoSólidos geométricos   6º ano
Sólidos geométricos 6º anoRafael Marques
 
Gráfico de uma função
Gráfico de uma funçãoGráfico de uma função
Gráfico de uma funçãoHelena Borralho
 
Gemetria Espacial: Prismas
Gemetria Espacial: PrismasGemetria Espacial: Prismas
Gemetria Espacial: Prismasjorgemarciordrgs
 
Geometria 6º ano
Geometria  6º anoGeometria  6º ano
Geometria 6º anojonihson
 
Escala cartografica
Escala cartograficaEscala cartografica
Escala cartograficapcnprafael
 
Quadrilateros
QuadrilaterosQuadrilateros
QuadrilaterosXo_oX
 
Cartografia
CartografiaCartografia
CartografiaFURG
 
Teoria dos conjuntos 1º ANO - Ensino Médio
Teoria dos conjuntos 1º ANO - Ensino MédioTeoria dos conjuntos 1º ANO - Ensino Médio
Teoria dos conjuntos 1º ANO - Ensino MédioRosana Santos Quirino
 
Projeções cartográficas ( terceiro ano e pré)
Projeções cartográficas ( terceiro ano e pré)Projeções cartográficas ( terceiro ano e pré)
Projeções cartográficas ( terceiro ano e pré)terceiromotivo2012
 
Matemática Financeira Básica
Matemática Financeira BásicaMatemática Financeira Básica
Matemática Financeira BásicaMarcus Santos
 

What's hot (20)

9º ano do e. f. jordão souza
9º ano do e. f. jordão souza9º ano do e. f. jordão souza
9º ano do e. f. jordão souza
 
Geografia projecoes cartograficas
Geografia projecoes cartograficasGeografia projecoes cartograficas
Geografia projecoes cartograficas
 
Conjuntos numéricos
Conjuntos numéricosConjuntos numéricos
Conjuntos numéricos
 
Plano cartesiano animado
Plano cartesiano animadoPlano cartesiano animado
Plano cartesiano animado
 
Cartografia tipos de mapas
Cartografia   tipos de mapasCartografia   tipos de mapas
Cartografia tipos de mapas
 
Slide aula angulos
Slide aula angulosSlide aula angulos
Slide aula angulos
 
Sólidos geométricos 6º ano
Sólidos geométricos   6º anoSólidos geométricos   6º ano
Sólidos geométricos 6º ano
 
Gráfico de uma função
Gráfico de uma funçãoGráfico de uma função
Gráfico de uma função
 
Gemetria Espacial: Prismas
Gemetria Espacial: PrismasGemetria Espacial: Prismas
Gemetria Espacial: Prismas
 
Geometria 6º ano
Geometria  6º anoGeometria  6º ano
Geometria 6º ano
 
Matrizes
MatrizesMatrizes
Matrizes
 
âNgulos
âNgulosâNgulos
âNgulos
 
Escala cartografica
Escala cartograficaEscala cartografica
Escala cartografica
 
Quadrilateros
QuadrilaterosQuadrilateros
Quadrilateros
 
Cartografia
CartografiaCartografia
Cartografia
 
Teoria dos conjuntos 1º ANO - Ensino Médio
Teoria dos conjuntos 1º ANO - Ensino MédioTeoria dos conjuntos 1º ANO - Ensino Médio
Teoria dos conjuntos 1º ANO - Ensino Médio
 
Simetria
SimetriaSimetria
Simetria
 
Prismas
PrismasPrismas
Prismas
 
Projeções cartográficas ( terceiro ano e pré)
Projeções cartográficas ( terceiro ano e pré)Projeções cartográficas ( terceiro ano e pré)
Projeções cartográficas ( terceiro ano e pré)
 
Matemática Financeira Básica
Matemática Financeira BásicaMatemática Financeira Básica
Matemática Financeira Básica
 

Viewers also liked

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çoComputaçã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çoTony Alexander Hild
 
Aula comp-grafica-matrizes
Aula comp-grafica-matrizesAula comp-grafica-matrizes
Aula comp-grafica-matrizesEdinei Reis
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unipjonathanblacknight
 
Transformacoes geometricas no_plano
Transformacoes geometricas no_planoTransformacoes geometricas no_plano
Transformacoes geometricas no_planocon_seguir
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosTony Alexander Hild
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLTony Alexander Hild
 
Processo de criação de um logotipo
Processo de criação de um logotipoProcesso de criação de um logotipo
Processo de criação de um logotipoIntrus
 
Apresentação logomarca
Apresentação logomarcaApresentação logomarca
Apresentação logomarcaJeca Pezenti
 
Ficha de avaliação de matemática
Ficha de avaliação de matemáticaFicha de avaliação de matemática
Ficha de avaliação de matemáticaHelena Borralho
 
Geometria analítica anotações de aula 1° semestre 2010
Geometria analítica anotações de aula 1° semestre 2010Geometria analítica anotações de aula 1° semestre 2010
Geometria analítica anotações de aula 1° semestre 2010Marcos Azevedo
 
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAIS
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAISLISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAIS
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAISwillianv
 

Viewers also liked (20)

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çoComputaçã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
 
Isometrias
IsometriasIsometrias
Isometrias
 
Movimento de rotação
Movimento de rotaçãoMovimento de rotação
Movimento de rotação
 
Transformacoes
TransformacoesTransformacoes
Transformacoes
 
Aula comp-grafica-matrizes
Aula comp-grafica-matrizesAula comp-grafica-matrizes
Aula comp-grafica-matrizes
 
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso UnipDesenvolvimento de jogos com ogre 3D - Mini Curso Unip
Desenvolvimento de jogos com ogre 3D - Mini Curso Unip
 
Logotipos
LogotiposLogotipos
Logotipos
 
Logotipo
LogotipoLogotipo
Logotipo
 
Transformacoes geometricas no_plano
Transformacoes geometricas no_planoTransformacoes geometricas no_plano
Transformacoes geometricas no_plano
 
Computação gráfica
Computação gráficaComputação gráfica
Computação gráfica
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Processo de criação de um logotipo
Processo de criação de um logotipoProcesso de criação de um logotipo
Processo de criação de um logotipo
 
COMO CRIAR UM LOGOTIPO
COMO CRIAR UM LOGOTIPOCOMO CRIAR UM LOGOTIPO
COMO CRIAR UM LOGOTIPO
 
Apresentação logomarca
Apresentação logomarcaApresentação logomarca
Apresentação logomarca
 
Ficha de avaliação de matemática
Ficha de avaliação de matemáticaFicha de avaliação de matemática
Ficha de avaliação de matemática
 
Geometria analítica anotações de aula 1° semestre 2010
Geometria analítica anotações de aula 1° semestre 2010Geometria analítica anotações de aula 1° semestre 2010
Geometria analítica anotações de aula 1° semestre 2010
 
Isometrias revisão
Isometrias revisãoIsometrias revisão
Isometrias revisão
 
Caderno 5 - Geometria Parte 1
Caderno 5 - Geometria Parte 1Caderno 5 - Geometria Parte 1
Caderno 5 - Geometria Parte 1
 
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAIS
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAISLISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAIS
LISTA DE EXERCÍCIOS - OPERAÇÕES COM NÚMEROS REAIS
 

Similar to Introdução à Computação Gráfica - Transformações Geométricas

Anac 2012 Resolução 53-60
Anac 2012 Resolução 53-60Anac 2012 Resolução 53-60
Anac 2012 Resolução 53-60jlcerq
 
Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Jedson Guedes
 
Medida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores ExtremosMedida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores ExtremosRenato Vicente
 
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosEquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosAntonio Carneiro
 
Trabalho de estudos orientados 2 regular eepjis
Trabalho de estudos orientados 2 regular eepjisTrabalho de estudos orientados 2 regular eepjis
Trabalho de estudos orientados 2 regular eepjisCristiano José
 
[Robson] 1. Programação Linear
[Robson] 1. Programação Linear[Robson] 1. Programação Linear
[Robson] 1. Programação Linearlapodcc
 
Para encontrarmos numa equação de 1º grau com duas incógnitas
Para encontrarmos numa equação de 1º grau com duas incógnitasPara encontrarmos numa equação de 1º grau com duas incógnitas
Para encontrarmos numa equação de 1º grau com duas incógnitaslerynha
 
Macetes Matematica Fisica
Macetes Matematica FisicaMacetes Matematica Fisica
Macetes Matematica Fisicaguesta4929b
 
As equações do segundo grau são abordadas na história da matemática desde a é...
As equações do segundo grau são abordadas na história da matemática desde a é...As equações do segundo grau são abordadas na história da matemática desde a é...
As equações do segundo grau são abordadas na história da matemática desde a é...leosilveira
 
Modelos de probabilidade
Modelos de probabilidadeModelos de probabilidade
Modelos de probabilidadeesoeneves
 
Equações literais
Equações literaisEquações literais
Equações literaisaldaalves
 
Equações literais
Equações literaisEquações literais
Equações literaisaldaalves
 

Similar to Introdução à Computação Gráfica - Transformações Geométricas (20)

Anac 2012 Resolução 53-60
Anac 2012 Resolução 53-60Anac 2012 Resolução 53-60
Anac 2012 Resolução 53-60
 
Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)
 
Formulário - Estatística
Formulário - EstatísticaFormulário - Estatística
Formulário - Estatística
 
Medida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores ExtremosMedida de risco por Teoria de Valores Extremos
Medida de risco por Teoria de Valores Extremos
 
Aula4 introbusto
Aula4 introbustoAula4 introbusto
Aula4 introbusto
 
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio CarlosEquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
EquaçõEs De 2º Grau,Sistema E Problema Autor Antonio Carlos
 
Trabalho de estudos orientados 2 regular eepjis
Trabalho de estudos orientados 2 regular eepjisTrabalho de estudos orientados 2 regular eepjis
Trabalho de estudos orientados 2 regular eepjis
 
V@R: Overview
V@R: Overview V@R: Overview
V@R: Overview
 
[Robson] 1. Programação Linear
[Robson] 1. Programação Linear[Robson] 1. Programação Linear
[Robson] 1. Programação Linear
 
Para encontrarmos numa equação de 1º grau com duas incógnitas
Para encontrarmos numa equação de 1º grau com duas incógnitasPara encontrarmos numa equação de 1º grau com duas incógnitas
Para encontrarmos numa equação de 1º grau com duas incógnitas
 
Ex algebra (12)
Ex algebra  (12)Ex algebra  (12)
Ex algebra (12)
 
Macetes Matematica Fisica
Macetes Matematica FisicaMacetes Matematica Fisica
Macetes Matematica Fisica
 
Exercícios de Geometria Analítica
Exercícios de Geometria AnalíticaExercícios de Geometria Analítica
Exercícios de Geometria Analítica
 
As equações do segundo grau são abordadas na história da matemática desde a é...
As equações do segundo grau são abordadas na história da matemática desde a é...As equações do segundo grau são abordadas na história da matemática desde a é...
As equações do segundo grau são abordadas na história da matemática desde a é...
 
Aulas Cap 1
Aulas Cap 1Aulas Cap 1
Aulas Cap 1
 
Modelos de probabilidade
Modelos de probabilidadeModelos de probabilidade
Modelos de probabilidade
 
Questão 4
Questão 4Questão 4
Questão 4
 
Regressao linear multipla
Regressao linear multiplaRegressao linear multipla
Regressao linear multipla
 
Equações literais
Equações literaisEquações literais
Equações literais
 
Equações literais
Equações literaisEquações literais
Equações literais
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Introdução à Computação Gráfica - Transformações Geométricas

  • 1. Introdução à Computação Gráfica DEINF-UFMA Prof. Anselmo Paiva UFMA Transformações Geométricas
  • 2. Transformações Geométricas 2D • Para gerar imagens bidimensionais precisamos das primitivas básicas (linhas, círculos, caracteres, etc.), • Uma vez que temos um objeto definido em termos dessas primitivas, as transformações permitem mudar a orientação, tamanho ou forma dos objetos • Os objetos são representados pelos pontos que o descrevem ( p = (x,y)) • Se descrevermos as transformações de pontos, então descrevemos a transformação de objetos • Transformações 2-D : – Translação. – Escala (relativa a um ponto). – Rotação (em torno de um ponto). Anselmo Cardoso de Paiva - DEINF - UFMA 2
  • 3. Transformações Lineares (espelhamento) x´ x´ = -1.x x y P´ = P = y´ = y y´ y P´ P x x´ -1 0 = 1 0 y y´ x Exercício: Deduzir as expressões para espelhamento em torno do eixo X.
  • 4. Translação • Descrevemos a translação de um ponto (x, y) por:  x' = x + tx   y' = y + ty • Ou através de soma de vetores: P' = P + T • Onde os vetores são definidos por :  x  x '  tx  P =  , P' =   , =  T  y  y '  ty  Anselmo Cardoso de Paiva - DEINF - UFMA 4
  • 5. Translação • Transladando cada ponto do objeto com a mesma equação, transladamos o objeto inteiro • Os pontos se movem ao longo de linhas paralelas. Anselmo Cardoso de Paiva - DEINF - UFMA 5
  • 6. Translação y tx x’ P’ x P’ = = + ty y’ y tx P t = ty x x’ 1 0 tx x P’ = = y’ 0 1 ty y [T] Matriz de Translação Anselmo Cardoso de Paiva - DEINF - UFMA 6
  • 7. Escala • Podemos escalar as coordenadas x e y de um ponto de maneira independente: x = s x × x; y = sy × y • Isso também pode ser escrito sob a forma matricial  x '  s x 0   x   = 0 s y   y  y '    • ou P ' = S × P onde S é a matriz de escala. • Se sx=sy então todos os • pontos se movem • diretamente a partir da origem Anselmo Cardoso de Paiva - DEINF - UFMA 7
  • 8. Rotação y x´ Um ponto pode ser rotacionado em P´ = y´ torno da origem de ângulo q usando as equações x P = q x´ = x.cos q - y.sen q y y´ = x.sen q + y.cos q x E na forma matricial: x´ x cos q -sen q = cos q sen q y´ y Ou P'= RDP onde R é a matriz de rotação • Todos os pontos se movem ao longo de círculos concêntricos, com centro na origem • Uma figura que não esteja na origem sofre uma translação além da rotação
  • 9. Coordenadas Homogêneas • Escala e rotação podem ser representadas por uma multiplicação de matriz, mas translação não pode. • Se todas as transformações pudessem ser representadas por matriz, multiplicando matrizes colocariamos várias delas juntas. • Isso é possíve se representarmos pontos 2D não por um par de números (x; y) (representado como um vetor unidimensional), mas se representarmos por por três números (X;Y;W) denominado coordenadas homogêneas • Dois conjuntos de coordenadas homogêneas representam o mesmo ponto 2D sss são múltiplos uns dos outros: (3,2,1), (6,4,2) ou (12,8,4) Anselmo Cardoso de Paiva - DEINF - UFMA 9
  • 10. Coordenadas homogêneas (CH) x wx xh x ∆ ∆ y y wy yh P = = = = y 1 w w P Ex.: 6 3 9 3 ∆ ∆ 4 2 6 = = = 2 2 1 3 x x = xh /w w>0 w y = yh /w y • Cada ponto 2-D possui muitas representações em CH, x que se forem interpretadas como pontos 3D, formam uma reta no espaço 3D passando pela origem, e pelo ponto yh w=1 2D no plano z=1. • Para obter uma única representação tratamos sempre os pontos (X;Y;W) dividino por W para obter na forma (x; xh y; 1).
  • 11. Translação em coordenadas homogêneas y tx x’ P’ x P’ = = + ty y’ y tx t P = ty x w y x’ 1 0 tx x x’ P’ y’ 0 1 ty y t = = = x y’ 1 0 0 1 1 yh w=1 [T] xh Matriz de Translação
  • 12. Escala e Rotação em coordenadas homogêneas • Escala  x '  s x 0  x  0   0  y  y' = 0 sy      1  0 1  1  0     • Rotação − sin q  x '  cos q 0  x    0  y  y ' = sin q cosq      1  0 1  1  0     Anselmo Cardoso de Paiva - DEINF - UFMA 12
  • 13. Propriedades das Transformações • Considere as linhas da matriz de rotação 2 x 2 • Cada linha é um vetor unitário • O produto escalar entre os dois vetores é zero - as linhas são ortogonais • A mesma propriedade vale para as colunas • Em razão dessas propriedades a matriz e denominada ortogonal. • Consequência: – a inversa é igual a transposta Anselmo Cardoso de Paiva - DEINF - UFMA 13
  • 14. Propriedades das Transformações • Uma matriz da forma r tx  r12 11  ty  r r21  21  0 1 0   • onde a submatriz da parte superior esquerda é ortogonal é denominada de transformação de corpo rígido: – Preserva ângulos. – Preserva comprimentos. – Pode realizar uma translação/rotação arbitrária. Anselmo Cardoso de Paiva - DEINF - UFMA 14
  • 15. Propriedades das Transformações • O produto de uma sequência arbitrária de matrizes de translações, escalas e rotações, é denominado uma transformação afim. Representada por: r r12 t x  11  r21 r21 t y    0 0 1   onde a submatriz 2x2 superior esquerda não necessariamente é ortogonal • Consequência: – Preserva paralelismo de retas. – Não necessariamente preserva ângulos ou comprimentos. – Pode realizar transformações de translação, escala, rotação, espelhamento e cisalhamento Anselmo Cardoso de Paiva - DEINF - UFMA 15
  • 16. Transformação de Cisalhamento • Possuem uma interpretação geométrica simples: • São produzidas por uma matriz da seguinte forma:  1 a 0  1 0 0 SH x =  0 1 0 SH y =  b 1 0      0 0 1  0 0 1     • Podem ser produzidas por uma combinação de rotações e escalas não uniformes Anselmo Cardoso de Paiva - DEINF - UFMA 16
  • 17. Concatenação de Transformações • Suponha que seja necessário rotacionar um objeto em torno de um ponto P1 = (x1; y1), diferente da origem • Não temos uma transformação que faça isso diretamente. • Essa operação pode ser realizada com uma sequência de transformações fundamentais. Anselmo Cardoso de Paiva - DEINF - UFMA 17
  • 18. Concatenação de Transformações • Translade o objeto de modo que P1 conincida com a origem. • Rotacione em torno da origem. • Translade de volta de modo que o ponto sobre a origem va para na posição originária de P1. Anselmo Cardoso de Paiva - DEINF - UFMA 18
  • 19. Concatenação • Um única matriz realizando esses três passos pode ser obtida através da multiplicação das matrizes das tr6es transformações na ordem inversa em que as transformações foram aplicadas. Trot _ P1 = Torigem− > p1 Rq _ origemT p1− > origem − − x1   cos q sen q 1 0  1 0 x1  0  y1   senq 0  0 1 y1  =0 − = cos q Trot _ P1 1     0 1 0 1  0 0  0 0 1     − x1 (1 − cos q ) + y1 sin q   cos q senq   = senq y1 (1 − cos q ) − x1 sin q cos q   0  0 1   Anselmo Cardoso de Paiva - DEINF - UFMA 19
  • 20. Concatenação - Rotação em Torno do centro do Objeto y a y y0 y0 x x0 x x0 1 0 − x0    1 x0  0 1 − y0  0   0 1 y0  0 1 0   y y 0 1 0    cos a 0 − sin a a    sin a cos a 0 0 1 0   x x  x ' 1 x 0   c o sa 0  1 x0   x  − − sin a 0 0          y ' =  0 − sin a cosa  y0  y 1 y0 0 0 1    1 1 1 0   1 0 0 1 0 0 0         
  • 21. Concatenação de Transformações y y x x T1 T2 y y x x R1 R2 y y E x x P’= T2 R2 E R1 T1 P P’= T2 R2 E R1 T1 P Anselmo Cardoso de Paiva - DEINF - UFMA 21
  • 22. Transformações em 3D (translações e escalas) y 1 x’ 0 0 tx x 0 y’ 1 0 ty y = x 0 z’ 0 1 tz z 0 0 0 1 1 1 z sx x’ 0 0 0 x 0 y’ sy 0 0 y = 0 z’ 0 sz 0 z 0 0 0 1 1 1
  • 23. Transformações em 3D (Rotações) 1 x’ 0 0 0 x y 0 cos q x y’ 0 y -sen q x = sen q x 0 cos q x z’ 0 z qy 0 1 0 0 1 1 x qx x’ 0 sen q y 0 x cos q y qz z 0 y’ 1 0 y 0 = -sen q y cos q y z’ 0 0 z 0 0 0 1 1 1 cos q z x’ 0 0 x -sen q x sen q x cos q x y’ 0 y 0 = 0 0 1 z’ 0 z 0 1 0 0 1 1