Derivatives of a B-spline Curve

Although B-spline curves are more complicated than Bézier curves, their derivatives share a very similar form. Suppose a B-spline curve is defined as follows:

The derivative of each of these basis functions can be computed as follows:

Plugging these derivatives back to the curve equation yields the following result:

where Qi's are defined as follows:

Therefore, the derivative of a B-spline curve is another B-spline curve of degree p - 1 on the original knot vector with a new set of n control points Q0, Q1, ..., Qn-1.

If the original clamped knot vector is u0(p+1), up+1, ..., um-p-1, um(p+1), then removing the first and the last knots so that the multiplicity of the first and the last knots become p rather than p+1, we have a new knot sequence of m - 1 knots u0(p), up+1, ..., um-p-1, um(p). Then, it can be shown that Ni+1,p-1(u) evaluated on the original knot sequence is equal to Ni,p-1(u) on the new one. Therefore, on the new knot sequence the derivative of a B-spline curve is the following:

In the following left is a B-spline curve of degree 5. Its derivative curve, which is a B-spline curve of degree p-1 defined by the new n control points, is shown in the middle. As in the Bézier curve case, this is the hodograph of the original curve. Below right shows the same hodograph with control polyline removed.

Clamped B-spline Curves

We know that a clamped B-spline curve passes through the first and the last control points. In fact, it is also tangent to the first and last legs of its control polyline. Recall from above that the derivative of a B-spline curve C(u) of degree p is

whose knot vector is obtained by dropping the first knot and last knot from the original knot sequence. Thus, the multiplicity of the first (and of course the last) knot is p and, consequently, the above B-spline curve of degree p-1 is clamped. Since a clamped B-spline curve passes through its first and last control points, we have C'(0) = Q0 and C'(1) = Qn-1. Since u0 = .... = up = 0 for i = 0, we have

Therefore, the tangent vector at C'(0) is in the same direction of the vector from P0 to P1 and C(u) is tangent to the first leg.

With the same reasoning, we can show the following:

Hence, C(u) is tangent to the last leg. In summary, we have the following important fact:

A clamped B-spline curve passes through the first and last control points and is tangent to the first and last legs of the control polyline.

Higher Derivatives

Since the first derivative of a B-spline curve is another B-spline curve, recursively applying this technique one can compute higher derivatives without any difficulty.