Sketcher BSplineDecreaseKnotMultiplicity

Description
Decreases the knot multiplicity of a B-spline curve knot (see B-spline).

B-splines are basically a combination of Bézier curves (nicely explained in this and this video). The points where two Bézier curves are connected to form the spline are called knots. A knot on a degree d spline with the multiplicity m means that the curve left and right to the knot has at least an equal n order derivative (called Cn continuity) whereas n=d-m. Here is a spline whose knots have the multiplicity 1 (indicated by the number in parentheses, indication can be changed using the toolbar button ):



A multiplicity of 3 will change this spline so that even the first order derivatives are not equal (C0 continuity). Here is the same spline where the left's knot multiplicity was increased to 3:



A consequence of a higher multiplicity is that for the price of loosing continuity you gain local control. This means the change of one control point only affects the spline locally to this changed point. This can be seen in this example, where the spline from the first image above was taken and its second control point from the right side was moved up:



One can see that the spline with knot multiplicity 1 is completely changed while the one with multiplicity 2 kept its form at its left side.

Note: If you decrease the multiplicity, the knot vanishes, because mathematically it appears then zero times in the knot vector, meaning there is no longer a basis function. Understanding this, requires some math, but it will also be clear when you look at the multiplicity: For example degree = 3 then multiplicity = 0 means that at the position of the knot two Bézier pieces are connected with  C3 continuity. So the third derivative should be equal on both sides of the knot. However for a cubic Bézier curve (that is a polynom with degree 3), this means both sides must be part of the same curve. So there is then actually no longer a knot connecting 2 different Bézier curves, the former knot is then simply a point onto one Bézier curve.

Usage

 * 1) Select a B-spline knot, either:
 * 2) * Press the button.
 * 3) * Use the menu.

Note: Decreasing the multiplicity from 1 to 0 will remove the knot since the result would be a curve with an "edge" at the knot position (C0 continuity) and this is not supported. (To create curves with an "edges", you can create two splines and connect them.)