B-Spline

DOWNLOAD Mathematica Notebook 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].

Wolfram Web Resources

Mathematica »

The #1 tool for creating Demonstrations and anything technical.

Wolfram|Alpha »

Explore anything with the first computational knowledge engine.

Wolfram Demonstrations Project »

Explore thousands of free applications across science, mathematics, engineering, technology, business, art, finance, social sciences, and more.

Computerbasedmath.org »

Join the initiative for modernizing math education.

Online Integral Calculator »

Solve integrals with Wolfram|Alpha.

Step-by-step Solutions »

Walk through homework problems step-by-step from beginning to end. Hints help you try the next step on your own.

Wolfram Problem Generator »

Unlimited random practice problems and answers with built-in Step-by-step solutions. Practice online or make a printable study sheet.

Wolfram Education Portal »

Collection of teaching and learning tools built by Wolfram education experts: dynamic textbook, lesson plans, widgets, interactive Demonstrations, and more.

Wolfram Language »

Knowledge-based programming for everyone.