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