Sketcher BSplineDecreaseKnotMultiplicity

From FreeCAD Documentation
Jump to navigation Jump to search

Sketcher BSplineDecreaseKnotMultiplicity.svg Sketcher BSplineDecreaseKnotMultiplicity

Menu location
Sketch → Sketcher B-spline tools → Decrease knot multiplicity
Default shortcut
Introduced in version
See also
Sketcher Show/hide B-spline knot multiplicity, Sketcher BSpline Increase knot multiplicity


Decreases the multiplicity of a B-spline knot. (See this page for more info about B-splines).

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 .
Here is a cubic spline () whose knots have the multiplicity 1. The multiplicity is indicated by the number in parentheses. The indication can be changed using the toolbar button Sketcher BSplineKnotMultiplicity.svg Show/hide B-spline knot multiplicity:

Sketcher KnotMultiplicity multiplicity1.png

B-spline where both knots have the multiplicity 1.

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:

Sketcher KnotMultiplicity multiplicity3.png

B-spline from above with knot multiplicity 3. A control point was moved to show that the knot has C0 continuity.

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:

Sketcher KnotMultiplicity locality.png

Effect of locality due to different multiplicity.

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.


  1. Select a B-spline knot, either:

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 "edge", you can create two splines and connect them.)