Está en la página 1de 31

Computación Gráfica

Modelado de Curvas

Dr. Eng. Alexander Cerón Correa

Facultad de Ingenierı́a
Programa Ingenierı́a en Multimedia
Universidad Militar Nueva Granada

Bogotá, Abril 1 de 2019

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Agenda

Definición Splines.
Splines cubicos.
Splines de Bézier.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines I

En dibujo de bocetos un spline es una banda flexible que se


utiliza para dibujar una curva suave que pasa por unos puntos
concretos.
Se puede describir una curva matemáticamente como una
función creada por tramos de polinomios cúbicos, cuyas
primera y segunda derivada con continuas en las diferentes
parte de la curva.
En CG se refiere a cualquier curva compuesta por partes
polinomicas que satisfacen condiciones de continuidad
especı́ficas en los limites de las mismas.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines II

(a) (b)

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines III
Existen diferentes clases de splines en CG, cada utiliza un tipo
particular de polinomio con condiciones especı́ficas en los
limites.
Los splines se usan para:
Diseñar formas de curvas y superficies
Digitalizar dibujos.
Para especificar trayectorias de animación.

(c) (d)
Dr. Eng. Alexander Cerón Correa Computación Gráfica
Splines de interpolación y de aproximación
Se especifica una curva con spline proporcionando un conjunto
de coordenadas de puntos llamados puntos de control.
Las partes polinómicas se ajustan para que todos los puntos
queden conectados.
Cuando las partes polinómicas se ajustan para que todos los
puntos de control queden conectados se dice que la curva
interpola.
Cuando la curva pasa cerca a los puntos de control se dice
que la curva es de aproximación.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Convex Hull y Grafo de control

El armazón convexo proporciona una medida de desviación de


una curva o superficie en la región del espacio próxima a los
puntos de control.
Es posible crear un grafo de control que indique como se
conecta la secuencia de puntos de control.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Condiciones de continuidad paramétricas I

Se usan para garantizar la transición suave de una parte de un


spline paramétrico por tramos en los puntos de conexión.
Cara parte del spline se describe con funciones de coordenadas
paramétricas de la forma:

x = funcionx (u), y = funciony (u), z = funcionz (u),

u1 ≤ u ≤ u2 .

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Condiciones de continuidad paramétricas II

Continuidad paramétrica:
C 0 , los valores x , y, z , de la curva evaluados en u2 de una
curva son iguales a los de la siguiente curva en u1 .
C 1 , los valores x , y, z , de las primeras derivadas de la curva
evaluados en u2 de una curva son iguales a los de la siguiente
curva en u1 .
C 2 , los valores x , y, z , de las segundas derivadas de la curva
evaluados en u2 de una curva son iguales a los de la siguiente
curva en u1 .

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Condiciones de continuidad geométricas I

En este caso solo se requiere que las derivadas paramétricas


de las dos sean proporcionales entre si en su frontera común.
Estas se denominan G0 , G1 y G2 .

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Especifı́caciones de splines I

Por condiciones de frontera.


Usando la matriz de caracteriza el spline.
Establecer el conjunto de funciones de combinación (funciones
base).

x (u) = ax u 3 + bx u 2 + cx u + dx , 0≤u≤1
Condiciones de frontera x(0), x(1), x’(0), x’(1).

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Métodos de interpolación con splines cubicos

Se puede usar para establecer trayectorias de movimiento de


objetos, para proporcionar una representación de un objeto o
dibujo existente, también para diseñar formas de objetos.
Compromiso entre flexibilidad y velocidad de computo.
Dados n+1 puntos de control:

pk = (xk , yk , zk ), k = 0, 1, 2, .., n

x (u) = ax u 3 + bx u 2 + cx u + dx ,
y(u) = ay u 3 + by u 2 + cy u + dy ,
z (u) = az u 3 + bz u 2 + cz u + dz .
0≤u≤1
Condiciones de frontera x(0), x(1), x’(0), x’(1).

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines cubicos naturales

Se definen con continuidad paramétrica C 2 .


Si se tienen n+1 puntos de control, se tienen n partes de
curva con un total de 4n coeficientes por determinar.
En cada uno de los n-1 puntos tenemos 4 condiciones en el
lı́mite.
Esto proporciona 4n-4 ecuaciones.

Problema, no permiten control local.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Interpolación de Hermite I

Los splines de Hermite son otro método para representar


splines cubicos.
En el, pueden ajustar localmente por que cada parte de la
curva sólo depende de las restricciones de sus puntos
extremos.
Si P(u) representa una función paramétrica cúbica de punto
para la parte de la curva entre los puntos pk y pk +1 .

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Interpolación de Hermite II

P (u) = pk (2u 3 − 3u 2 + 1) + pk +1 (−2u 3 + 3u 2 ) + Dp(u 3 − 2u 2 + u)

+Dpk +1 (u 3 − u 2 )

P (u) = pk H0 (u) + pk +1 H1 (u) + Dpk H2 (u) + Dpk +1 H3 (u)

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Interpolación de Hermite III

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier I

Son adecuados para el diseño de curvas y superficies.


Están disponibles con frecuencia en sistemas CAD.
n
X
P (u) = pk BEZk ,n (u), 0 ≤ u ≤ 1.
k =0

Las funciones de base de Bézier BEZk ,n (u) son los polinomios


de Bernstein.

BEZk ,n (u) = C (n, k )u k (1 − u)n−k

.
Los parámetros C (n, k ) son los coeficientes binomiales:

n!
C (n, k ) =
k !(n − k )!

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier II

n −k +1
C (n, k ) = C (n, k − 1)
k

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier III

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier IV

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier V

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier VI

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Curvas con splines de Bézier VII

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines B I

El grado del polinomio de un spline B se puede establecer de


forma independiente al número de puntos.
Los splines B permiten control local sobre la forma de un
spline.
Desventaja su complejidad respecto a los de Bézier.
n
X
P (u) = pk Bk ,d (u), umin ≤ u ≤ umax , 2 ≤ d ≤ n + 1.
k =0

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines B II

Las funciones de combinación de los B-Splines (Bk ,d ) son


polinomios de grado d-1.
El control local se realiza definiendo las funciones de
combinación sobre subintervalos del rango total de variación
de u.
Las funciones de combinación se definen mediante las
fórmulas recursivas de Cox-deBoor.

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines B III

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines B IV

Fórmulas recursivas de Cox-deBoor.



1 uk ≤ u ≤ uk +1
Bk ,1 (u) =
0 en otro caso

u − uk uk +d − u
Bk ,d (u) = Bk ,d−1 (u) + Bk +1,d−1 (u)
uk +d−1 − uk uk +d − uk +1

Donde cada función se define sobre d subintervalos del rango


total de variación de u.
Cada punto extremo de los sub intervalos se denomina nudo
(knot).

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines racionales I

Un spline racional se define como el cociente entre dos


funciones de splines.
Pn
k =0 ωk pk Bk ,d (u)
P (u) = P n
k =0 pk Bk ,d (u)

Respecto a los splines no racionales, estos proporcionan una


representación exacta de las curvas cuadraticas (conicas).
Habitualmente, los paquetes de diseño utilizan
representaciones con vectores no uniformes de nudos para
construir splines B racionales.
Estos splines se denominan NURBS (nonuniform rational
B-Splines).

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines racionales II

void CurvaNurbs ()
{
GLfloat knotVector [8] = {0.0 ,0.0 ,0.0 ,0.0 ,1.0 ,1.0 ,1.0 ,1.0};
GLfloat ctrlPts [4][3] = {{ -4.0 ,0.0 ,0.0} , { -2.0 ,8.0 ,0.0} ,
{2.0 , -8.0 ,0.0} , {4.0 ,0.0 ,0.0}};

GLUnurbsObj * mycurve ;
mycurve = gl uN ew N ur bs R en de r er ();
gluBeginCurve ( mycurve );
gluNurbsCurve ( mycurve ,8 , knotVector ,3 ,& ctrlPts [0][0] ,4 , GL_MAP1_VERTEX_3 );

gluEndCurve ( mycurve );
}

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Splines racionales III

Dr. Eng. Alexander Cerón Correa Computación Gráfica


Referencias

Donald Hearn, Computer Graphics With OpenGL.


Edward Angel, Interactive Computer Graphics with OpenGL.

Dr. Eng. Alexander Cerón Correa Computación Gráfica

También podría gustarte