TOPICS
Search

B-Spline


BSpline

A B-spline is a generalization of the Bézier curve. Let a vector known as the knot vector be defined

 T={t_0,t_1,...,t_m},
(1)

where T is a nondecreasing sequence with t_i in [0,1], and define control points P_0, ..., P_n. Define the degree as

 p=m-n-1.
(2)

The "knots" t_(p+1), ..., t_(m-p-1) are called internal knots.

Define the basis functions as

N_(i,0)(t)={1 if t_i<=t<t_(i+1) and t_i<t_(i+1); 0 otherwise
(3)
N_(i,j)(t)=(t-t_i)/(t_(i+j)-t_i)N_(i,j-1)(t)+(t_(i+j+1)-t)/(t_(i+j+1)-t_(i+1))N_(i+1,j-1)(t),
(4)

where j=1, 2, ..., p. Then the curve defined by

 C(t)=sum_(i=0)^nP_iN_(i,p)(t)
(5)

is a B-spline.

Specific types include the nonperiodic B-spline (first p+1 knots equal 0 and last p+1 equal to 1; illustrated above) and uniform B-spline (internal knots are equally spaced). A B-spline with no internal knots is a Bézier curve.

A curve is p-k times differentiable at a point where k duplicate knot values occur. The knot values determine the extent of the control of the control points.

B-splines are implemented in the Wolfram Language as BSplineCurve[pts].


See also

Bézier Curve, NURBS Curve, Spline

Explore with Wolfram|Alpha

Cite this as:

Weisstein, Eric W. "B-Spline." From MathWorld--A Wolfram Web Resource. https://mathworld.wolfram.com/B-Spline.html

Subject classifications