La
realización de un B-spline consta de 3 partes: hacer los nodos,
generar las funciones básicas y generar el propio B-spline.
Nodos
Consiste
en calcular una serie de puntos equidistantes. El único requisito
par el vector de nodos es que cumpla la siguiente relación:
Dependiendo
del número de puntos y el orden del B-spline se obtendrá un conjunto
de puntos que usualmente comienzan con el 0 y de forma periódica
van aumentando.
Para cada tipo de B-splines existen nodos diferentes:
- En el caso de los uniformes se utiliza la siguiente función:
Ej: [0,1,2,3,4] [0,0.25,0.5,0.75,1]
Como se puede comprobar no tienen por qué ser incrementos
enteros.
- En los uniformes abiertos el vector de nodos tienen multiplicidad
de valores al final del vector igual que el orden de la función
base del B-spline.
Donde k es el orden del B-spline y n el número de puntos.
Ej: [0,0,1,2,3,4,4] [0,0,0,0,1,2,2,2,2]
Para el primer ejemplo el orden es 2 y para el segundo ejemplo
el orden es 4. La multiplicidad también se observa al principio
del vector.
Funciones Básicas
Establece
la relación entre el polígono (los vértices del polígono que son
los puntos de entrada) y la curva.
La
elección del vector de nodos no influye en la función base. El
resultado de las funciones básicas uniformes abiertas generan
curvas que se comportan como curvas de bezier.
Éste cálculo es común para los dos tipos de B-spline. Se adapta
el convenio de que 0/0 es 0.
Creación del B-spline
Finalmente,
haciendo el producto matricial entre los valores obtenidos en
las funciones básicas y de los vértices poligonales se obtiene
el punto de la curva resultante. Iterando el resultado de la función
básica sobre los vértices del polígono se va obteniendo toda la
curva del B-spline.