Transformaciones Geometric As 2D Graficacion

Embed Size (px)

Citation preview

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    1/31

    TRANSFORMACIONES

    GEOMTRICASEN 2D

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    2/31

    Introduccin a las transformaciones

    2D Un Sistema grfico debera permitir la definicin de

    objetos o imgenes que incluyan una serie de

    transformaciones. Estas transformaciones son el medio para construiro modificar imgenes u objetos.

    Una rotacin, traslacin y escalamiento entre otras,

    son tales transformaciones. Cada transformacin utiliza un punto (x, y) paragenerar un nuevo punto (x, y).

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    3/31

    Transformaciones en dos

    dimensionesLos objetos se definen mediante un conjunto de

    puntos. Las transformaciones son procedimientos para

    calcular nuevas posiciones de estos puntos, cambiadoel tamao y orientacin del objeto.

    Las operaciones bsicas de transformacin son

    Traslacin Escalamiento

    Rotacin.

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    4/31

    TraslacinLas coordenadas (x,y) de un objeto se transforman a (x',y')de acuerdo a las frmulas:

    x x T y y Tx y' , '! !

    El par (Tx, Ty) se conoce como vector de traslacin.

    y

    x

    y

    x

    (a)(b)

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    5/31

    Escalamiento

    El escalamiento modifica el tamao de un polgono. Paraobtener este efecto, se multiplica cada par coordenado (x,y)

    por un factor de escala en la direccin x y en la direccinypara obtener el par (x',y').

    Las frmulas son x x S y y S

    x y! ! y

    x

    y

    x

    (a)(b)

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    6/31

    Escalamiento respecto a un punto

    fijoSe puede llevar a cabo un escalamiento respecto a un puntofijo trasladando primero ese punto al origen, despusescalando y luego regresando el objeto a la posicin original.

    Las ecuaciones son x x x x S y y y y S

    x y' , '! ! F F F F

    y

    x

    y

    x

    (a)(b)

    (x ,y )F F

    F

    F

    1'

    1'ySSyy

    xSSxx

    yy

    xx

    !!

    Reacomodando

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    7/31

    Rotacin

    La rotacin gira los puntos de una figura alrededor de un puntofijo. De la figura se obtiene

    y

    x

    r

    r(x, y)

    (x', y')

    J

    U

    x r r r

    y r r r

    ' cos cos cos sen sen

    ' sen sen cos cos sen

    ! !

    ! !

    J U J U J U

    J U J U J U

    x x y

    y y x

    ' cos sen

    ' cos sen

    !

    !

    U U

    U U

    Simplificando

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    8/31

    Rotacin respecto a un punto

    arbitrarioLa rotacin respecto a un punto arbitrario es

    x x x x y y

    y y y y x x

    ' cos sen

    ' cos sen

    !

    !

    R R R

    R R R

    U U

    U U

    y

    x

    (x , y )R R

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    9/31

    Coordenadas homogneasPara poder representar las tres transformaciones en formamatricial como producto de matrices, es necesario representarlos puntos en coordenadas homogneas.

    Estas coordenadas agregan una tercer componente a lascoordenadas bidimensionales. De tal forma que, un punto (x,y)

    pasa a ser (x,y, W). El punto en coordenadas Cartesianasrepresentado por esta trada es el (x/W,y/W). El valor de Wesgeneralmente 1.

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    10/31

    Representacin matricial de

    traslacionesHaciendo uso de coordenadas homogneas la traslacin puederepresentarse como:

    ? A ? Ax y x y

    T Tx y

    ' ' 1 1

    1 0 0

    0 1 0

    1

    !

    -

    En forma abreviada la transformacin se representar porT(Tx, Ty)

    T T TT T

    x y

    x y

    , !

    -

    1 0 0

    0 1 0

    1

    P P T T Tx y' ,!

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    11/31

    Haciendo uso de coordenadas homogneas el escalamientopuede representarse como:

    En forma abreviada la transformacin se representar porS(Sx, Sy)

    ? A ? Ax y x y

    S

    S

    x

    y' ' 1 1

    0 0

    0 0

    0 0 1

    !

    -

    P P S S Sx y' ,! S S SS

    Sx y

    x

    y, !

    -

    0 0

    0 0

    0 0 1

    Representacin matricial de

    escalamientos

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    12/31

    Representacin matricial de

    rotacionesHaciendo uso de coordenadas homogneas la rotacin puederepresentarse como:

    En forma abreviada la transformacin se representar porR(U)

    ? A ? Ax y x y' '

    cos sen

    sen cos1 1

    0

    0

    0 0 1

    !

    -

    U U

    U U

    P P R' ! U R UU UU U!

    -

    cos sensen cos

    0

    0

    0 0 1

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    13/31

    Composicin detransformaciones

    Para aplicar varias transformaciones a un conjunto de puntosbasta con combinar las matrices de transformacin en una sola,mediante multiplicacin matricial. En caso de tener solotransformaciones del mismo tipo, la combinacin sigue reglas

    muy simples. T T T T T T T T T T T x y x y x x y y1 1 2 2 1 2 1 2, , , ! Traslacin:

    Escalamiento:

    Rotacin:

    S S S S S S S S S S S

    xy

    xy

    x xy

    x1 1 2 2 1 2 1 2, , , !

    R R RU U U U1 2 1 2 !

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    14/31

    Escalamiento respecto a un punto

    fijo en forma matricialPara llevar a cabo un escalamiento respecto a un punto fijo, seprocede multiplicando una matriz de traslacin para llevar elpunto fijo al origen por una de escalamiento y posteriormentepor otra de traslacin para llevar al punto fijo a su posicinoriginal.

    1 0 0

    0 1 0

    1

    0 0

    0 0

    0 0 1

    1 0 0

    0 1 0

    1

    0 0

    0 0

    1 1 1

    -

    -

    -

    !

    -

    x y

    S

    S

    x y

    S

    S

    S x S y

    x

    y

    x

    y

    x y

    F F F F

    F F

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    15/31

    (a)

    (x ,y )F F

    Objeto original y punto fijo

    (b)Traslada de manera que el

    punto fijo quede en el origen

    (c)Escala el objeto respecto al origen

    (d)

    (x ,y )F F

    Traslada de manera que elpunto fijo quede en la posicinoriginal

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    16/31

    Rotacin respecto a un punto fijo

    en forma matricialPara llevar a cabo una rotacin respecto a un punto fijo, se

    procede multiplicando una matriz de traslacin para llevar elpunto fijo al origen por una de rotacin y posteriormente porotra de traslacin para llevar al punto fijo a su posicin original.

    -

    !

    -

    -

    -

    1cos1cos1

    0cos

    0cos1

    010

    001

    100

    0cos

    0cos

    1

    010

    001

    RRRR

    RRRR

    UUUU

    UU

    UU

    UU

    UU

    senxysenyx

    sen

    sen

    yx

    sen

    sen

    yx

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    17/31

    (a)

    (x ,y )R R

    Ob eto original y punto i o

    (b)Traslada de manera que el

    punto i o quede en el origen

    (c)Rota el ob eto respecto al origen

    (d)

    (x ,y )R R

    Traslada de manera que elpunto i o quede en la posicinoriginal

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    18/31

    Forma general

    En general una transformacin que utilice traslaciones,escalamientos y rotaciones tendr la forma:

    ? A ? Ax y x y

    a d

    b e

    c f

    ' ' 1 1

    0

    0

    1

    !

    -

    Por tanto, el clculo de las coordenadas transformadas sepodr hacer con las siguientes ecuaciones

    feydxy

    cbyaxx

    !

    !

    '

    '

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    19/31

    Otras transformaciones

    Otras transformaciones que permiten llevar

    a cabo operaciones muy tiles, estas son: Reflexiones

    Corte.

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    20/31

    Reflexiones en x yyLas reflexiones respecto al eje x yy se obtienen con las matricessiguientes:

    1 0 0

    0 1 0

    0 0 1

    -

    -

    1 0 0

    0 1 0

    0 0 1

    (a) (b)

    osicin original

    osicin re le ada

    osicin re le adaosicin original

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    21/31

    Reflexin respecto al origen

    -

    1 0 0

    0 1 0

    0 0 1

    (a)

    osicin original

    osicin refle ada

    La reflexin respecto al origense obtiene con :

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    22/31

    Reflexin respecto a la rectay = xUna reflexin respecto a la rectay = x, puede obtenerse en tres

    pasos: girar un ngulo de 45 en el sentido de las manecillas delreloj, una reflexin respecto al eje x, y una rotacin de 45 gradosen contra del sentido del reloj.

    osicin original

    (a) Rotacin de -45 grados (b) Reflexin respecto a x. (a) Rotacin de 45 grados

    osicin original

    osicin reflejada

    0 1 0

    1 0 0

    0 0 1

    -

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    23/31

    Corte en x

    El corte produce una deformacin similar al deslizamiento deuna capa sobre otra. El corte en x se produce por la matriz:

    1 0 0

    1 0

    0 0 1

    SHx

    -

    (a) (b)

    (1,1)(2,1) (3,1)

    (1,0)

    (0,1)

    (0,0) (0,0) (1,0)x x

    y y

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    24/31

    Corte enyEl corte eny se produce por la matriz

    1 0

    0 1 0

    0 0 1

    SHy

    -

    (a) (b)

    (1,1)

    (1,2)

    (1,3)

    (1,0)

    (0,1)

    (0,0) (0,0)

    (0,1)

    x x

    y y

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    25/31

    Transformaciones Ventana-

    Puerto de visinLas transformaciones ventana-puerto de visin, mapean puntosen el mundo real a puntos en la pantalla.

    Coordenadas mundiales Coordenadas de pantalla

    VentanaPuerto de visin 1

    Puerto de visin 2

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    26/31

    Transformaciones de visin

    Ventana en coordenadas mundiales

    (xmin,ymin)

    (xmax,ymax)

    Ventana trasladada al origen

    Ventana escalada al tamao

    del rea de visin.

    Traslacin hasta la posicin final.

    (umin, vmin)

    (umax,vmax)

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    27/31

    Transformaciones de visin

    (continuacin)

    minminminmax

    minmax

    minmax

    minmaxminmin ,,, vuT

    yy

    vv

    xx

    uuSyxTMWV

    !

    -

    -

    -

    !

    1010

    001

    100

    00

    00

    1010

    001

    minminminmax

    minmax

    minmax

    minmax

    minmin vuyy

    vv

    xx

    uu

    yx

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    28/31

    Transformaciones de visin

    (continuacin)

    -

    !

    1

    00

    00

    minminmax

    minmax

    minminminmax

    minmax

    min

    minmax

    minmax

    minmax

    minmax

    vyy

    vv

    yuxx

    uux

    yy

    vv

    xx

    uu

    MW

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    29/31

    Ejemplo

    Las transformaciones complejas deben serdescritas como composicin de una mssimples. Suponga que queremos derivar unatransformacin que rote un punto en el sentido

    de las manecillas del reloj, un ngulo conrespecto al punto (Rx, Ry).

    Primero debemos trasladar el punto para que

    (Rx, Ry) se convierta en el origen, esto es:

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    30/31

    [x, y , 1] = [x, y , 1] 1 0 00 1 0-Rx Ry 1

    [x, y , 1] = [x, y , 1]cos -sen 0sen cos 0

    0 0 1

    Posteriormente se aplica la rotacin.

    Finalmente, trasladamos el punto para que el origen sea trasladado

    (Rx, Ry).[x, y , 1] = [x, y , 1] 1 0 0

    0 1 0Rx Ry 1

  • 8/8/2019 Transformaciones Geometric As 2D Graficacion

    31/31

    Esto se podra haber realizado mediante una composicin detransformaciones.

    [x, y , 1] =

    = [ x, y , 1] 1 0 00

    1

    0

    -Rx Ry 1

    cos -sen 0sen cos 0

    0 0 1

    1 0 00 1 0Rx Ry 1

    Si los valores de Rx, Ry y se conocen, las tres matrices se

    pueden multiplicar para obtener una sola matriz de transformacin.Ejercicio: Obtener la matriz de transformacin final.