Aula 8 - CG - Transformations 2D Pt

Embed Size (px)

DESCRIPTION

Aula 8 - CG - Transformations 2D

Citation preview

  • Informtica

    1

    Transformaes Geomtricas

    Aula Computao Grfica

  • Informtica

    2

    Como Usar Transformaes Geomtricas?

    Objetos em uma cena so colees de pontos

    Esses objetos possuem

    Localizao

    Orientao

    Tamanho

    Esses parmetros correspondem a

    Translao (T)

    Rotao (R)

    Escala (S)

  • Informtica

    3

    Como Usar Transformaes Geomtricas?

    Uma cena tem uma cmera/ponto de vista de onde observada

    A cmera tem uma localizao e uma orientao no espao 3D

    Esses parmetros correspondem a transformaes

    Translaes e Rotaes

    Outros tipos de transformaes de visualizao so necessrias

    Visto em aulas futuras

  • Informtica

    4

    Conceitos Necessrios de lgebra Linear

    Geometria em coordenadas 3D

    Vetores no espao 2D e 3D

    Produto escalar e produto vetorial (definio e uso)

    Notaes bsicas de vetor e matriz

    Matriz identidade

    Associatividade multiplicativa

    Ex.: (AB)C = A(BC)

    Matriz transposta e inversa

    Sistema de coordenadas homogneas

    (x, y, z, w)

  • Informtica

    5

    Transformaes Lineares

    Padro de representao no slides Vetores: Negrito-Itlico (v)

    Escalares: Itlico (c)

    Qualquer vetor no plano pode ser definido pela soma de dois vetores no colineares

    Lembre-se que a base para um espao vetorial um conjunto de vetores com as seguintes propriedades: Os vetores so linearmente independentes

    Qualquer vetor nesse espao pode ser representado por uma combinao linear dos vetores base.

    A multiplicao de um vetor por um escalar altera a magnitude do vetor

    v = a + bv

    b

    a

  • Informtica

    6

    Transformaes Lineares

    Funo linear deve atender duas propriedades:

    1) f(v+w) = f(v) + f(w) para todo v e w no domnio de f

    2) f(cv) = cf(v) para todo escalar c e elementos v no domnio

    Exemplo da propriedade 1

    f(x) = f(x1 , x2) := (3x1+2x2 , -3x1+4x2) f(v+w) = f(v1+w1 , v2+w2)

    = (3(v1+w1)+2(v2+w2) , -3(v1+w1)+4(v2+w2))

    = (3v1+2v2 , -3v1+4v2) + (3w1+2w2 , -3w1+4w2)

    = f(v) + f(w)e1

    e2

    f(e1)

    f(e2)

  • Informtica

    7

    Transformaes Lineares

    Uso grfico de funes lineares

    Transformao de um ponto em torno da origem

    Deixa a origem invariante

    Funes lineares

    Incluem Rotao e Escala

    No inclui Translao

    Qualquer transformao de um ponto

    Resulta em outro ponto

    Transformado em torno da origem

  • Informtica

    8

    Transformaes Lineares como Matrizes

    Podem ser representadas como

    Matrizes inversveis (no singulares)

    Comeando com transformaes 2D que podem ser representas por matrizes 2x2:

    Se e1 e e2 so os vetores base:

    Ento as colunas da matriz de transformao T so T aplicada a e1 e e2:

    T =a b

    c d

    e1 =1

    0

    , e2 =

    0

    1

    T(e1)=a

    c

    , T(e2)=

    b

    d

  • Informtica

    9

    Transformaes Lineares como Matrizes

    Isso significa que podemos derivar a matriz de transformao

    Considerando como a transformao afeta os vetores base

    A transformao de um vetor arbitrrio x = tem a forma:

    Com isso, pode-se verificar o porqu da estratgia anterior

    Substitua cada vetor base por x para obter:

    2

    1

    x

    x

    21

    21

    2

    1

    2

    1

    dxcx

    bxax

    x

    x

    dc

    ba

    x

    xT

    c

    a

    dc

    baT

    0

    1

    0

    1

    d

    b

    dc

    baT

    1

    0

    1

    0

  • Informtica

    10

    Transformao de Escala

    Escalar x de 3 e y de 2 (Sx = 3, Sy = 2) v = (vrtice original); v = (novo vrtice)

    v = Sv

    Derivar S determinando como e1 e e2 deveriam ser transformados

    Obtendo:

    y

    x

    '

    '

    y

    x

    S=sx 0

    0 sy

    Escala X de Sx

    Escala Y de Sy

    Efeito colateral: Casa muda a posio em relao a origem

    1

    2

    1

    3

    2

    6

    2

    9

  • Informtica

    11

    Transformao de Escala

    S uma matriz diagonal

    Ela pode ser rapidamente verificada

    S multiplica cada coordenada de v pelo fator de escala apropriado

    Outras propriedades da escala

    No preserva ngulos entre linhas em um plano

    Exceto para escala uniforme

    Se o objeto no estiver na origem

    Ele vai se aproximar ou se afastar dela

    Isso geralmente no desejvel

    '

    '

    0

    0

    y

    x

    ys

    xs

    y

    x

    s

    s

    y

    x

    y

    xSv

  • Informtica

    12

    Transformao de Rotao

    Rotaciona de em torno da origem

    v = (vrtice original);

    v = (novo vrtice)

    v = Rv

    Derivar R determinando como e1 e e2 deveriam ser transformados

    y

    x

    '

    '

    y

    x

    cos

    sin

    1

    02e

    Primeira coluna de R

    Segunda coluna de R

    Rq =cosq -sinq

    sinq cosq

  • Informtica

    13

    Transformao de Rotao

    R pode ser rapidamente verificada

    R * v =

    Outras propriedades da rotao

    Transformao de corpo rgido

    Preserva comprimento dos objetos

    Preserva ngulos entre as partes dos objetos

    Para objetos no centrados na origem

    Uma translao indesejada introduzida

    v'

    '

    '

    cossin

    sincos

    cossin

    sincos

    y

    x

    yx

    yx

    y

    x

    x'= xcosq - ysinq

    y'= xsinq + ycosq

  • Informtica

    14

    Transformao de Translao

    E como fica a translao?

    Translao no uma transformao linear

    A origem no invariante

    Portanto, no pode ser expressada por uma matriz 2x2

    Existe alguma outra soluo?

  • Informtica

    15

    Transformao de Translao

    E como fica a translao?

    Translao no uma transformao linear

    A origem no invariante

    Portanto, no pode ser expressada por uma matriz 2x2

    Existe alguma outra soluo?

    Sim

    Fazer: v = v + t, where t =

    Porm, quebra a uniformidade No se pode tratar como as matrizes anteriores

    dy

    dx

  • Informtica

    16

    Transformao de Translao

    Se pudssemos tratar tudo como matriz

    Ento, poderamos combinar transformaes por matrizes

    Usando multiplicao e associatividade

    Vamos tentar usar uma matriz novamente

    Como?

    Coordenadas homogneas

    Adicionar uma dimenso adicional (o eixo w)

    Adicionar uma coordenada adicional (componente w)

    Ento temos: 2D como 3D (hiperespao englobando o 2D)

  • Informtica

    17

    Coordenada Homogneas

    Permite uniformizar todas as 3 transformaes bsicas

    Representar escala, rotao e translao como matrizes 3x3

    Comeamos com um ponto P2d no plano xy

    Aplicamos o w para trazer para o hiperespao

    P2d(x,y) => Ph(wx, wy, w), w0

    O ponto resultante Ph Possui coordenadas diferentes

    (x,y) = (wx,wy)

    Ph(x, y, w), w 0

  • Informtica

    18

    Coordenada Homogneas

    Com o ponto no novo espao e representado por Ph Transformaes homogeneizadas podem ser aplicadas

    Transformaes representadas por matrizes com tamanho fixo

    Para se obter o ponto no espao 2D original

    Basta aplicar a transformada inversa

    Dividir todas as componentes por w

    Aps a diviso o vrtice v = ser representado por v =

    y

    x

    1

    y

    x

  • Informtica

    19

    Coordenada Homogneas

    As transformaes que vamos usar mantero w = 1

    Ou seja, utilizaremos transformaes T que mapeiam

    v = em v =

    Como fazer isso para as transformaes que j derivamos?

    Para as transformaes lineares

    Basta fazer

    1

    y

    x

    1

    '

    '

    y

    x

    100

    0

    0

    dc

    ba

  • Informtica

    20

    Transformao de Translao

    A matriz de translao focar na ltima coluna

    Para verificar a matriz, basta fazer:

    Perceba que as coordenadas foram transladadas v permanece em coordenadas homogneas

    100

    10

    01

    dy

    dx

    T

    v'Tv

    11100

    10

    01

    dyy

    dxx

    y

    x

    dy

    dx

  • Informtica

    21

    Transformaes Homogeneizadas

    Perceba que a escala e a rotao no foram afetadas

    Essas 3 transformaes so chamadas de afins

    Transformation Matrix

    Scaling

    Rotation

    Translation

    sx 0 0

    0 sy 0

    0 0 1

    cosq -sinq 0

    sinq cosq 0

    0 0 1

    1 0 dx

    0 1 dy

    0 0 1

  • Informtica

    22

    Transformaes Homogeneizadas

    Exemplos

    Escala de 15 em x e 17 em y

    Rotao de 123

    Translao de -16 em x e 18 em y

    100

    0170

    0015

    100

    0)123cos()123sin(

    0)123sin()123cos(

    100

    1810

    1601

  • Informtica

    23

    Vetores vs Pontos

    At agora s utilizamos o conceito de pontos

    Porm, tambm podemos utilizar vetores

    As coordenadas homogneas foram introduzidas para Facilitar a translao

    Portanto pontos so representados por (x, y, 1)T

    Um vetor pode ser rotacionado e escalado Mas no pode ser transladado, portanto (x, y, 0)T

    Vamos focar nos pontos, ou seja, nos vrtices dos objetos

  • Informtica

    24

    Transformaes Inversas

    Como achar as transformaes inversas?

    Use a matriz inversa das transformaes

    Graas a homogeneizao

    Todas so invertveis

    Transformation Matrix Inverse Does it make sense?

    Scaling If you scale something by factor a, theinverse is scaling by 1/a

    Rotation Inverse of rotation by is rotation by . The properties sin(-) = -sin() and cos(-) = cos() give this matrix. Also, the matrix is orthonormal, so inverse is just the transpose.

    Translation If you translate by x, the inverse istranslation by -x

  • Informtica

    25

    Composio de Transformaes

    Agora temos vrias ferramentas a disposio

    Podemos combin-las

    Um objeto em uma cena composto por vrios vrtices

    O objeto usa vrias transformaes para ser formado

    Como representamos isso por funes?

    Transformao uma funo

    Elas podem ser compostas por associatividade

    (f o g)( i )

    Equivalente a aplicar g e depois f:

    f( g( i ) )

  • Informtica

    26

    Composio de Transformaes

    Considere nossas funes f e g como matrizes (M1 e M2)

    Considere nossa entrada como um vetor v

    Nossa composio equivalente a M1M2v

    Agora podemos formar transformaes complexas

    Usando composio de transformaes bsicas

    Por exemplo, TRSv

    Podemos compor as matrizes em uma s antes de multiplicar

    til para aumentar performance dado o alto nmero de vrtices

    1100

    00

    00

    100

    0cossin

    0sincos

    100

    10

    01

    y

    x

    s

    s

    dy

    dx

    y

    x

  • Informtica

    27

    Composio de Transformaes

    Importante: A ordem das transformaes importa!

    Multiplicao de matrizes no comutativo!

    Exemplo

    01

    1

    2

    2

    3 4 5 6 7 8 9 10

    3

    4

    5

    6

    Y

    X0

    1

    1

    2

    2

    3 4 5 6 7 8 9 10

    3

    4

    5

    6

    Transladar dex = 6, y = 0, e rotacionar de 45o

    Rotacionar de 45o e transladar de x = 6, y = 0

  • Informtica

    28

    Composio de Transformaes

    Exemplo de composio

    Comeo Fim-Escala uniforme de 3x-Rotao de 90-Ambos em torno do centro do objeto, no a origem

  • Informtica

    29

    Composio de Transformaes

    Exemplo de composio

    Simplifique o problema! Calcule o centro (vamos supor em x=3 e y=3)

    Translade o objeto para a origem

    Escale

    Rotacione

    Translade de volta

    Comeo Fim-Escala uniforme de 3x-Rotao de 90-Ambos em torno do centro do objeto, no a origem

    100

    310

    301

    100

    030

    003

    100

    090cos90sin

    090sin90cos

    100

    310

    3011RSTT

  • Informtica

    30

    Composio de Transformaes

    T-1RST

    E se tivssemos misturado a ordem?

    Vamos tentar RT-1ST

    Escalou propriamente

    Mas a rotao introduziu uma translao indesejada

    cos90 -sin90 0

    sin90 cos90 0

    0 0 1

    1 0 3

    0 1 3

    0 0 1

    3 0 0

    0 3 0

    0 0 1

    1 0 -3

    0 1 -3

    0 0 1

  • Informtica

    31

    Composio de Transformaes (Inversa)

    Qual a inversa de uma sequncia de transformaes?

    a composio das inversas na ordem invertida

    (M1M2Mn)-1 = Mn

    -1Mn-1-1M1

    -1

    Supondo que queiramos desfazer as transformaes aplicadas nos slides anteriores T-1RST

    (T-1RST)-1 = T-1S-1R-1T

    Ainda sim precisamos transladar a origem e levar de volta

    100

    310

    301

    100

    090cos90sin

    090sin90cos

    100

    03/10

    003/1

    100

    310

    301

    TRST 1-1-1-

  • Informtica

    32

    Transformao de Cisalhamento

    Transformao que distorce o formato do objeto

    Aplica-se um deslocamento aos valores das coordenadas

    O deslocamento proporcional ao valor das outras coordenadas de cada ponto transformado

    Quadrados viram paralelogramas

    Perceba a base da casa permanece horizontal mas desliza

    Y

    X0 1

    1

    2

    2

    3 4 5 6 7 8 9 10

    3

    4

    5

    6

    4

    10tan

    11

    Skew

    2D non-homogeneous

    100

    010

    0tan

    11

    Skew

    2D homogeneous

  • Informtica

    33

    Forma Alternativa de Pensar

    Pensamento natural

    Transformaes mudam posio dos vrtices em relao aos eixos

    Pensamento alternativo

    Transformaes mudam os eixos dos sistemas de coordenadas

    Essa forma facilita a representao no papel

    Rotation Scaling Translation

  • Informtica

    34

    Perguntas ?????