Transforma§µes 2D - Marcio Bueno .Transforma§µes 2D 2/31 Transforma§µes Geom©tricas s£o a

  • View
    218

  • Download
    0

Embed Size (px)

Text of Transforma§µes 2D - Marcio Bueno .Transforma§µes 2D 2/31...

  • Transformaes 2D

    Fonte: Material do Prof. Robson Pequeno

    de Sousa e do Prof. Robson Lins

    Prof. Mrcio Bueno

    {cgtarde,cgnoite}@marciobueno.com

  • Transformaes 2D

    2/31

    Transformaes Geomtricas so a base de inmeras

    aplicaes grficas

    O que so elas?

    So usadas para mostrar ou representar objetos grficos

    Matemtica: Mapeamento entre valores (funo/relao)

    Geomtrica: translao, rotao, escala, cizalhamento,

    Porque so importantes em computao grfica?

    Move o objeto na tela / no espao

    Mapeamento do modelo no espao para a tela.

    Computao Grfica - Mrcio Bueno

  • Transformaes 2D

    3/31

    Exemplos de aplicaes de transformaes geomtricas: Programa para representar layouts de circuitos eletrnicos.

    Programas de planejamento de cidades

    Movimentos de translao para colocar os smbolos que definem edifcios e rvores em seus devidos lugares, rotaes para orientar corretamente esses smbolos, e alterao de escala para adequar o tamanho desses smbolos, etc.

    sistemas de software sofisticados que permitem a construo de cenas realistas.

    Computao Grfica - Mrcio Bueno

  • Transformaes Geomtricas 2D

    Computao Grfica - Mrcio Bueno4/31

    Transformaes bsicas

    Translao (Translation) (T)

    Escala (scaling) (S)

    Rotao (rotation) (R)

    Outras Transformaes

    Reflexo (reflection)

    Cizalhamento (shear)

  • Computao Grfica - Mrcio Bueno5/31

    Deslocamento do objeto no espao

    xnew = xold + tx ynew = yold + ty

    Translao

    ty

    tx

  • 6/31

    Mudana de Escala

    O uso clssico desta operao em computao grfica

    a funo zoom in (ampliao) ou zoom out (reduo)

    xnew = sxxold ynew = syyold

    wold wnew

    hold

    hnew

    Computao Grfica - Mrcio Bueno

    Escala

  • 7/31

    A rotao o giro de um

    determinado ngulo de um ponto

    em torno de um ponto de

    referncia, sem alterao da

    distncia entre eles.

    Queremos girar (x1,y1) para o

    ponto (x2,y2) pelo ngulo B

    Da figura temos:

    sen (A + B) = y2/r cos (A + B) = x2/r

    sen A = y1/r cos A = x1/rA

    B

    Computao Grfica - Mrcio Bueno

    Rotao em Torno da Origem

    r

    (x2,y2)

    (x1,y1)

    x

    y

    (0,0)

  • 8/31

    Sabemos que: sin (A + B) = sinAcosB + cosAsinB

    Substituindo,

    y2/r = (y1/r)cosB + (x1/r)sinB

    multiplicando por r, tem-se que:

    y2 = y1cosB + x1sinB

    Por fim:x2 = x1cosB - y1sinB

    y2 = x1sinB + y1cosB

    Computao Grfica - Mrcio Bueno

    Rotao em Torno da Origem

  • 9/31

    Translao: xnew = xold + txynew = yold + ty

    Escala: xnew = sxxoldynew = syyold

    x xnew

    y ynew

    t x tx x

    t y ty y

    y

    x

    s

    s

    ys

    xs

    y

    x

    y

    x

    y

    x

    new

    new

    0

    0

    Computao Grfica - Mrcio Bueno

    Transformaes como Matrizes

  • 10/31

    Rotao:

    x2 = x1cos - y1sen

    y2 = x1sen + y1cos

    )cos()(

    )()cos(

    11

    11

    2

    2

    ByBsenx

    BsenyBx

    y

    x

    1

    1

    )cos( )(

    )( )cos(

    y

    x

    BBsen

    BsenB

    Computao Grfica - Mrcio Bueno

    Transformaes como Matrizes

  • Coordenadas Homogneas

    Computao Grfica - Mrcio Bueno11/31

    Infelizmente, a translao tratada de forma diferente (como

    uma soma) das outras - Rotao e Escala so tratadas atravs

    de multiplicaes.

    P' = T + P

    P' = S P

    P' = R P

    Para que possamos combinar facilmente essas transformaes,

    devemos tratar do mesmo modo todas as 3 transformaes.

    Se os pontos so expressos em Coordenadas

    Homogneas, todas as 3 transformaes podem ser tratadas

    como multiplicaes.

  • 12/31

    As coordenadas homogneas de um ponto (x,y) so

    (x, y, w), em que x = x/w, y = y/w e w qualquer nmero

    real diferente de 0

    Um conjunto de coordenadas homogneas sempre da forma

    (x, y,1)

    Essa forma representa o ponto (x,y)

    Todas as outras coordenadas homogneas so da forma

    (wx,wy,w)

    Note que a representao em coordenadas homogneas no

    nica

    Por exemplo: (6,4,2), (12,8,4), (3,2,1) representam o ponto

    (3,2)

    Computao Grfica - Mrcio Bueno

    Coordenadas Homogneas

  • Coordenadas Homogneas

    Computao Grfica - Mrcio Bueno13/31

    Interpretao geomtrica Os pontos em coordenadas homogneas formam o

    plano definido pela equao w=1 no espao (x,y,w)

  • Transformaes e Coordenadas

    Homogneas

    Computao Grfica - Mrcio Bueno14/31

    Assim, as transformaes de um ponto em coordenashomogneas podem ser tratadas como multiplicaes

    1

    ),( y

    x

    P yx

    . .

    .

    .

    T P Transl

    P S P Escala

    R P Rotaao

  • 15/31

    100

    0cossin

    0sincos

    R

    100

    00

    00

    , y

    x

    yx s

    s

    S

    100

    10

    01

    , y

    x

    yx t

    t

    T

    Computao Grfica - Mrcio Bueno

    Transformaes e Coordenadas

    Homogneas

  • 16/31

    Suponha que queremos realizar multiplas transformaes

    sobre um ponto:P2 T3,1P1

    P3 S2, 2P2

    P4 R30P3

    M R30S2,2T3,1

    P4 MP1Lembrando:

    Multiplicao de matrizes associativa, no comutativa!

    Matrizes de transformao podem ser pre-multiplicadas

    Computao Grfica - Mrcio Bueno

    Transformaes Compostas

  • Transformaes Compostas - Mudana

    de Escala

    Computao Grfica - Mrcio Bueno17/31

    Dada trs transformaes bsicas podemos criar outras

    transformaes.

    Mudana de escala com ponto fixo

    Um problema com a mudana de escala que ela move o

    objeto que teve a escala alterada.

    Mudana de escala na linha (2, 1) a (4,1) para duas vezes seu

    comprimento.

    0 1 2 3 4 5 6 7 8 9 10

    Antes Apos

    0 1 2 3 4 5 6 7 8 9 10

  • 18/31

    Se mudamos a escala da linha entre (0,0) e (2,0)

    por duas vezes, o ponto (0,0) no move.

    (0,0) denominado ponto fixo para a transformao mudana de

    escala bsica. Podemos utilizar transf. Composta para criar transf.

    mudana de escala com pontos fixos diferentes da origem.

    0 1 2 3 4 5 6 7 8 9 10

    antes depois

    0 1 2 3 4 5 6 7 8 9 10

    Computao Grfica - Mrcio Bueno

    Transformaes Compostas - Mudana

    de Escala

  • 19/31

    Escala por 2 com ponto fixo = (2,1)

    Translade o ponto (2,1) para a origem

    Escale por 2

    Translade a origem para (2,1)

    0 1 2 3 4 5 6 7 8 9 10

    antes

    Computao Grfica - Mrcio Bueno

    Mudana de Escala - Ponto Fixo

  • Mudana de Escala - Ponto Fixo

    20/31

    CTST

    100

    010

    202

    100

    110

    201

    100

    010

    002

    100

    110

    201

    1,21,21,2

    2 0 2

    0 1 0

    0 0 1

    C

    2

    1

    1

    2

    1

    1

    1

    1

    6

    1

    1

    4

    100

    010

    202

    C

    0 1 2 3 4 5 6 7 8 9 10

    apos

    0 1 2 3 4 5 6 7 8 9 10

    antes

    coord (2,1) coord (6,1)

    Computao Grfica - Mrcio Bueno

  • 21/31

    Rotao de graus em torno de (x,y)

    Translade (x,y) para origem

    Faa a Rotao

    Translade a origem para (x,y)

    , ,

    1 0 cos s n 0 1 0

    0 1 s n cos 0 0 1

    0 0 1 0 0 1 0 0 1

    x y x y

    x e x

    C y e y

    T R T

    Computao Grfica - Mrcio Bueno

    Rotao em Torno de Ponto Fixo

  • 22/31

    (x,y) (x,y)

    Posio inicial e final

    Computao Grfica - Mrcio Bueno

    Rotao em Torno de Ponto Fixo

  • 23/31

    Dado original y cisalh. x cisalh.

    100

    01

    001

    a

    100

    010

    01 b

    Matriz de cisalhamento em y Matriz de cisalhamento em x

    Computao Grfica - Mrcio Bueno

    Cisalhamento

  • 24/31

    Reflexo em torno do eixo y Reflexo em torno do eixo x

    100

    010

    001

    100

    010

    001

    Computao Grfica - Mrcio Bueno

    Reflexo - Espelhamento

  • 25/31

    Reflexo de um objeto em relao a um eixo

    perpendicular ao plano xy e passando na origem

    100

    010

    001

    Computao Grfica - Mrcio Bueno

    Mais Reflexes

  • 26/31

    Casos especiais em que a comutatividade de

    composio de transformaes so validas.

    Computao Grfica - Mrcio Bueno

    Transformaes Compostas

  • Transformao Janela em Porta de Viso

    (Windows to Viewport)

    27/31

    Como as primitivas so especificadas em coordenadas

    do mundo, o pacote grfico precisa mapear as

    coordenadas do mundo em coordenadas de tela.

    Uma forma de se efetuar esta transformao

    especificando uma regio retangular em coordenadas

    do mundo.

    Uma regio retangular correspondente em

    coordenadas de tela, chamada de Porta de Viso

    (Viewport).

    Computao Grfica - Mrcio Bueno

  • Transformao Janela em Porta de Viso

    (Windows to Viewport)

    28/31

    Alguns sistemas grficos permitem ao programador

    especificar primitivas de sada em um sistema de

    coordenadas em ponto-flutuante.

    Chamado de sistema de coordenadas do Mundo Real.

    O termo Mundo (World) usado para representar o

    ambiente interativamente criado ou apresentado para

    o usurio.

    Computao Grfica - Mrcio Bueno

  • Transformao Janela em Porta de Viso

    (Windows to Viewport)