Cubic B-Splines

Cubic B-splines are different than Hermite, and Bezier curves in a couple of ways.

  1. The curves generated by cubic B-Spline formulation do not pass through the control points -- only near them.
  2. The curves generated are an interpolation of segments of , and not points at .

Unlike Hermite, and Bezier curves, where they can generate equivalent curves, the cubic B-spline is different.

This discussion is limited to uniform B-splines.

A uniform B-spline consists of control points , and is defined by the following conditional expression:

We are interested in interpolating a single segment for a B-spline. For example, given four control points, , we can interpolate a single segment which comes close to point , and .

Segment

Controlling the other two endpoints, , and controls the curvature of the segment.

We can compute a B-spline quickly by using the matrix representation, given

Where represents the collection of control points for the particular segment to be interpolated.

in this case, presents the segment to be interpolated. So, if we want to interpolate the 2nd segment, we would the set of points would be: .

The expression for the first segment looks like:

The below example interpolates many segments with the points:

XY
-0.50
-0.50.5
-0.30.5
-0.30.3
-0.10.1
-0.10.5
00
0.3-0.5
0.50
00.6
-0.1-0.6
0.80.8

With Control

Without Control

We are able to generate beautiful curves this way!

Limitations

 

With a finite set of control points, you cannot make a B-spline traverse a unit circle. We will need to use rational B-splines to achieve this.