30
Mg. Johnny R. Avendaño Q. e-mail: jravendanoq@gmail.com Departamento Académico de Ciencias de la Computación Facultad de Ingeniería de Sistemas e Informática Universidad Nacional Mayor de San Marcos Computación Gráfica http://sites.google.com/site/unmsmcomputaciongrafica/ Representación de Curvas

CG06RepresetacionCurvas

Embed Size (px)

DESCRIPTION

Represantacion curvas

Citation preview

  • Mg. Johnny R. Avendao Q.

    e-mail: [email protected]

    Departamento Acadmico de Ciencias de la Computacin

    Facultad de Ingeniera de Sistemas e Informtica

    Universidad Nacional Mayor de San Marcos

    Computacin Grfica

    http://sites.google.com/site/unmsmcomputaciongrafica/

    Representacin de Curvas

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Objetivos:

    Como modelar o representar los

    diversos objetos reales?

    El problema: no existe un modelo

    matemtico del objeto

    Solucin:

    Aproximacin por trozos o pedazos:

    planos, esferas, otras primitivas.

    Se propone que los puntos del modelo

    no sean parte del objeto, pero que

    permitan controlar la forma.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Representacin de curvas

    Existen tres formas de representar los

    objetos:

    Explcito: y=f(x)

    Implcito: f(x,y)=0

    Paramtrico:

    (x(t),y(t))

    Superficies cudricas

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Representacin implcita

    Superficie algebraica:

    8x2 - xy2 + xz2 + y2 + z2 - 8 = 0 Singularidades

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Representacin parmetrica

    Mejor manipulacin de la estructura

    almbrica.

    Representacin matemtica precisa y bien

    estudiada.

    Forma general:

    f(u,v) = ( x(u,v), y(u,v), z(u,v) )

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Curvas parametrizadas

    Consideraremos una curva P(t)

    parametrizada (normalizada) en el

    intervalo [0,1].

    Esta se realiza en cada componente:

    P(t)=(x(t),y(t),z(t))

    El vector tangente a la curva P(t) en un

    punto (sobre ella) es obtenida por P(t):

    P(t)=(x(t),y(t),z(t))

    La parametrizacin a considerar ser el

    de un polinomio en la variable t con

    caractersticas apropiadas:

    Suavidad, continuidad hasta la segunda

    derivada.

    Flexibilidad para controlar la forma de la

    curva.

    Fcil manipulacin.

    0 1

    P(0)

    P(1)

    P( t)

    t

    P( t)

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Estudiaremos:

    Curva de Hermite.

    Curva de Bzier.

    Curva Spline, Bspline, Catmull-Rom.

    Curvas Nurbs (Non Uniform Rational

    Basis).

    Haremos las extensiones respectivas

    para el caso de superficies,

    Algor (B.Spline)

    Simulador de conduccin de

    carreras (B.Spline)

    Aplicacin (Bezier)

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Hermite (1822-1901)

    Se necesita 4 elementos:

    P1 y P2, puntos extremos e la curva.

    T1 y T2, tangentes a la curva en los

    puntos extremos.

    Usualmente se les denomina de factores de

    control (de la curva).

    Estos datos permiten un mayor control de la

    curva, implcitamente el mdulo de los

    vectores tangentes permite cambiar la

    forma de la curva.

    Se puede construir curvas suaves y que

    tomen formas bruscas.

    P1

    P2

    T1

    T2

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    formulacin

    Cada componente de la curva es parametrizada

    por un polinomio:

    P(t) = (x(t),y(t),z(t))

    x(t) = axt3 +bxt

    2 + cxt + dx

    y(t) = ayt3 +byt

    2 + cyt + dy

    z(t) = azt3 +bzt

    2 + czt + dz

    Se considera una base de polinomios:

    {t3 ,t2 ,t ,1}.

    Se determinan los coeficientes, para finalmente

    representar la curva de manera compacta:

    P(t) = TH(t) H Gh , t en [0,1]

    Obs: TH H = (2t3-3t2+1,-2t3+t2, t3-2t3+t, t3-t2)

    H: matriz de coeficientes.

    Gh: condiciones geomtricas.

    P1

    P2

    T1

    T2

    P=(x,y,z)

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Bzier (1822-1901)

    Desarrollado en los aos 60 por Pierre

    Bzier, para el diseo de automviles e

    implementado en los programas CAD.

    Tambin en diseo de fuentes tipogrficas y

    generacin de curvas en las impresoras

    PostScript.

    Se las observa en mltiples programas de

    diseo grfico como Corel Draw.

    Simplicidad en cuanto a formulacin.

    Se puede construir (como mnimo) con tres

    puntos de control:

    P0, P1 y P2.

    Los puntos extremos pertenecen a la

    curva.

    Se puede formular de forma similar a la

    curva de Hermite.

    http://acg.cs.tau.ac.il/projects/internal-

    projects/arrangements-of-bezier-curves

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Formulacin(3 puntos)

    Se presenta como:

    P(t) = B2,0(t)P0+ B2,1(t)P1 +B2,2(t)P2

    B2,0(t) = (1-t)2

    B2,1(t) = 2t(1-t)

    B2,2(t) = t2

    Matricialmente:

    P(t) = TB MB Gb

    Para el caso de cuatro puntos es

    anlogo.

    En general se escribe como:

    ini

    inin

    in uuuB

    )1()(

    )!(!!

    ,

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Continuidad en la unin de curvas

    Continuidad geomtrica:

    El punto P final de una curva C1

    coincide con el punto inicial de la otra

    curva C2.

    Las direcciones de los vectores

    tangentes u y w en cada punto de

    unin deben tener la misma direccin. P

    w u

    C1

    C2

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Continuidad entre curvas

    G0: Continuidad Geomtrica de orden 0. Las

    curvas se unen en un punto P.

    G1: Continuidad Geomtrica de orden 1. La

    direccin de los vectores tangente son iguales

    en el punto P.

    C1: Continuidad Paramtrica de orden 1. La

    direccin de los vectores tangente son iguales

    en P, adems de tener el mismo mdulo.

    Gn: Las derivadas de orden n, de los vectores

    tangentes tienen la misma direccin.

    Cn: Adems de cumplir la condicin de Gn, los

    mdulos deben ser iguales.

    P

    w u

    C1

    C2

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Construccin de las curvas de Bzier

    Donde los coeficientes de Bzier

    son definidos como:

    Dado n+1 puntos P0,P1,...,Pn de

    control, la curva de Bzier se define

    como:

    Adems:

    n

    i

    iin PuBuP0

    , )()(

    ini

    inin

    in uuuB

    )1()(

    )!(!!

    ,

    ),,( iiii zyxP

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Propiedades de la curva de Bzier

    El grado de la curva P(u) de Bzier construido con n+1

    puntos de control es igual a n.

    P(u) va desde P0 hasta Pn, es decir, solamente desde el

    primer punto de control hasta el ltimo.

    Todos los coeficientes de Bzier son no negativos.

    Los coeficientes de Bzier cumplen la propiedad de la

    Particin de la Unidad, es decir:

    utodoparauBn

    i

    in ,1)(0

    ,

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Propiedades de la curva de Bzier

    Se puede incrementar el grado de la curva de Bzier, es decir

    mayor cantidad de puntos de control, pero esto no quiere

    decir que la curva sea la ptima. En otras palabras, con un

    nmero suficientemente pequeo se puede obtener la curva

    deseada.

    Esto es similar cuando se hace la subdivisin de la curva, las

    propiedades no se alteran.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Propiedades de la curva de Bzier

    P(u) est definida en el intervalo [0,1].

    Propiedad de la Cpsula Convexa: la curva de Bzier est

    contenida en el mayor polgono convexo construido con los

    puntos de control Pi.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Moviendo los puntos de control

    Al mover los puntos de control, la

    forma de la curva cambia de manera

    global, es decir, si movemos slo un

    punto de control, esta afectar a toda

    la curva.

    Si movemos un punto de control

    verticalmente, entonces todos los

    puntos sobre la curva se desplazan

    verticalmente.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Algoritmo de Casteljau

    La construccin del algoritmo de

    Casteljau est basada

    construccin geomtrica usando

    una regla mtrica.

    El concepto fundamental est

    basado en la eleccin de un

    punto C en el segmento AB.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Forma recursiva

    Relacin de recurrencia (similar a la serie de Fibonacci):

    function deCasteljau(i,j)

    begin

    if i = 0 then

    return P0,j

    else

    return (1-u)* deCasteljau(i-1,j) +u*deCasteljau(i-1,j+1)

    end

    1,,1,0

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

    nj

    niPuPuP jijiji

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    B-Splines (J. Schoenberg )

    Un Spline (regla de acero flexible) es una

    herramienta de diseo de curvas:

    Tcnica de interpolacin.

    Polinomio cbico suave.

    Vienen implementadas en herramientas de

    modelado 3D como Blender, Rhino, etc.

    Un B-Spline es una combinacin paramtrica de

    splines bsicos:

    n

    i

    ini PtNtP0

    , )()(

    )()()(

    ,0

    ,1)(

    1,1

    11

    11,

    1

    ,

    1

    0,

    tNtt

    tttN

    tt

    tttN

    casosdems

    ttttN

    ki

    iki

    kiki

    ii

    iki

    ii

    i

    Blender

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Propiedades

    Ni,k(t) posee grado igual k.

    Las funciones Ni,k(t) son no

    negativas.

    Tienen soporte compacto.

    Se cumple la relacin m=n+k+1, si se

    tienes m+1 puntos de control, k es el

    grado del la funcin base y n+1

    funciones bases.

    La curva B-Spline queda contenida

    en la capsula convexa.

    Algoritmos como Graham, fuerza

    bruta entre otros. (uso de

    argumentos de convexidad).

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Una modificacin de algunos puntos de

    control slo afectan a una regin circundante

    de ellas.

    Las curvas de Bzier son casos especiales

    de una curva B-Spline.

    Toda la curva es invariante bajo

    transformaciones geomtricas (invariancia

    afn).

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Curva Splines del tipo Catmull-Rom

    Curva de interpolacin: pasa a

    travs de todos los puntos de

    control.

    Fue desarrollada para ser aplicada

    en computacin grfica.

    Se necesita conocer previamente

    dos puntos de control sobre la

    curva para obtener otro entre ellas.

    Representacin (cuatro puntos):

    Q(t)=TcMcGc

    3

    2

    1

    0

    23

    21

    0020

    0101

    1452

    1331

    ]1,,,[)(

    P

    P

    P

    P

    ttttQ

    Punto deseado

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    La curva es de clase C1, es

    decir, no existe discontinuidad

    en las tangentes.

    El vector v tangente en Pi

    siempre es paralelo a la

    secante que une los puntos

    Pi-1 y Pi+1.

    La curva no necesariamente

    est contenida en la

    envolvente convexa (convex

    hull). Pi-1

    Pi+1

    Pi

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Ejemplo de uso de un Spline Catmull Rom con OpenGL

    No se ha usado efectos

    realista basado en la

    fsica, por lo que la

    velocidad puede parecer

    poco realista

    http://www.youtube.com/watch?v=WwLWwaMrIYM

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Curvas racionales: NURBS

    NURBS (Non Uniform Rational B-

    Splines): modelo matemtico muy

    utilizado en la computacin grfica para

    generar y representar curvas y

    superficies.

    El desarrollo de NURBS empez en 1950

    por ingenieros que necesitaban la

    representacin matemtica exacta de

    superficies de forma libre como las

    usadas en carroceras de automviles y

    cascos de barcos, que pudieran ser

    reproducidos exacta y tcnicamente en

    cualquier momento.

    Las anteriores representaciones de este

    tipo de diseos slo podan hacerse con

    modelos fsicos o maquetas realizadas

    por el diseador o ingeniero.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Las NURBS, B-splines, son representaciones

    matemticas de geometra en 3D capaces de

    describir cualquier forma con precisin, desde

    simples objetos hasta los ms complejos slidos

    o superficies de forma libre en 3D.

    Gracias a su flexibilidad y precisin, se pueden

    utilizar modelos NURBS en cualquier proceso,

    desde la ilustracin y animacin hasta la

    fabricacin.

    La geometra NURBS tiene cualidades

    esenciales que la convierten en la opcin ideal

    para el modelado asistido por computadora.

    Las NURBS pueden representar con precisin

    objetos geomtricos estndar tales como lneas,

    crculos, elipses, esferas y toroides, as como

    formas geomtricas libres como carroceras de

    coches y cuerpos humanos.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    La cantidad de informacin que requiere

    la representacin de una forma

    geomtrica en NURBS es muy inferior a

    la que necesitan por separado las

    aproximaciones comunes.

    La regla de clculo de las NURBS, que

    se describe a continuacin, se puede

    implementar en una computadora de

    manera eficaz y precisa.

    Las curvas y superficies NURBS se

    comportan de maneras similares y

    comparten mucha terminologa.

    Proporcionaremos informacin ms

    detallada sobre las curvas, porque son

    ms fciles de describir.

    Simulacin de la rbita de un cometa usando

    Blender, para seguir la rbita, la cola siempre va

    opuesta al sol porque usando una fuerza de

    repulsin de tipo esfrica. La cola est hecha con

    partculas y el haloSize y el Color RGB estn

    ajustados con curvas IPO. La rbita es un crculo

    NURBS deformado.

  • Representacin de Curvas

    Mg. Johnny R. Avendao Q.

    Referencias

    Shene C.K. Introduction to Computing with Geometry Notes. Department

    of Computer Science. Michigan Technological University 1997.

    Foley, Van Dam, Feiner, Hughes. Computer Graphics: Principles and

    Practice, second edition in C. Addison Wesley Publishing Company 1996.

    Hoschek, Lasser. Fundamentals of Computer Aid Geometric Design. A.K.

    Peters Wellesley Massachusetts 1993.

    Pinto Carvalho P. Introduo Geometria Computacional. IMCA 2000.

    http://es.wikipedia.org/wiki/NURBS

    Animacin usando Blender y Nurbs:

    http://www.youtube.com/watch?v=B5zuvZq0y5g

    Animacin usando OpenGL y una curva del tipo Catmull-Rom:

    http://www.youtube.com/watch?v=WwLWwaMrIYM&translated=1