Inserting Duplicate Knots

In the first image below, we see a cubic B-Spline with three spans whose boundaries are marked with blue dots on the curve. The knot vector is t = (0,0,0,0,1/3,2/3,1,1,1,1). As before, we have repeated the first (last) knot k times to force the curve to start (stop) at its initial (final) control point.

The subsequent images illustrate the effect of inserting additional knots at t=1/3. Each insertion results in an additional control point and an additional span. When the multiplicity of an interior knot is k-1 (or 3, in this case), the curve interpolates a B-Spline control point.

Original curve with knot vector t = (0,0,0,0,1/3,2/3,1,1,1,1):

Adding a new knot at t=1/3, the knot vector becomes t = (0,0,0,0,1/3,1/3,2/3,1,1,1,1). Notice the shape of the curve has not changed, but the control polygon has come closer to the curve, touching it tangentially in a manner similar to what we saw in the previous example.

Adding another new knot at t=1/3, the knot vector becomes t = (0,0,0,0,1/3,1/3,1/3,2/3,1,1,1,1). Again, the shape of the curve has not changed, but the new control point lies on the curve. It will continue to do so if we click and drag the control point around.

We now do the same thing on the other side of the curve. First we add a new knot at t=2/3. The knot vector becomes t = (0,0,0,0,1/3,1/3,1/3,2/3,2/3,1,1,1,1):

Finally, we add one more new knot at t=2/3. The knot vector becomes t = (0,0,0,0,1/3,1/3,1/3,2/3,2/3,2/3,1,1,1,1):