B-spline interpolation
B-spline interpolation of control points of any dimensionality using de Boor's algorithm.
The interpolator can take an optional weight vector, making the resulting curve a Non-Uniform Rational B-Spline (NURBS) curve if you wish so.
The knot vector is optional too, and when not provided an unclamped uniform knot vector will be generated internally.
Usage.js
bspline(t, degree, points[, knots, weights])
t position along the curve in the [0, 1] range
degree degree of the curve. Must be less
than or equal to the number of control points
minus 1. 1 is linear, 2 is quadratic, 3 is cubic,
and so on.
points control points that will be interpolated.
Can be vectors of any dimensionality
([x, y], [x, y, z], ...)
knots optional knot vector. Allow to modulate
the control points interpolation spans on t.
Must be a non-decreasing sequence of number
of points + degree + 1 length values.
weights optional control points weights.
Must be the same length as the control point array.
js Thibaut Séguy adapted by hawe