Difference between revisions of "Sketcher BSplineDecreaseKnotMultiplicity"

From FreeCAD Documentation
Jump to navigation Jump to search
m (template linting)
(link new page)
 
(19 intermediate revisions by 7 users not shown)
Line 7: Line 7:
 
|[[Sketcher_Workbench|Sketcher]]
 
|[[Sketcher_Workbench|Sketcher]]
 
|IconL=Sketcher_BSplineIncreaseKnotMultiplicity.svg
 
|IconL=Sketcher_BSplineIncreaseKnotMultiplicity.svg
 +
|IconR=Sketcher_SwitchVirtualSpace.svg‎
 
|IconC=Workbench_Sketcher.svg
 
|IconC=Workbench_Sketcher.svg
|IconR=Sketcher SwitchVirtualSpace.png
+
}}
}}
 
  
 
<!--T:1-->
 
<!--T:1-->
 
{{GuiCommand
 
{{GuiCommand
 
|Name=Sketcher BSplineDecreaseKnotMultiplicity
 
|Name=Sketcher BSplineDecreaseKnotMultiplicity
|Workbenches=[[Sketcher Workbench|Sketcher]]
 
 
|MenuLocation=Sketch → Sketcher B-spline tools → Decrease knot multiplicity
 
|MenuLocation=Sketch → Sketcher B-spline tools → Decrease knot multiplicity
 +
|Workbenches=[[Sketcher_Workbench|Sketcher]]
 
|Version=0.17
 
|Version=0.17
|SeeAlso=[[Sketcher CompCreateBSpline|Create B-spline]]
+
|SeeAlso=[[Sketcher_BSplineKnotMultiplicity|Sketcher Show/hide B-spline knot multiplicity]], [[Sketcher_BSplineIncreaseKnotMultiplicity|Sketcher BSpline Increase knot multiplicity]]
 
}}
 
}}
  
Line 23: Line 23:
  
 
<!--T:9-->
 
<!--T:9-->
Decreases the knot multiplicity of a B-spline curve knot (see [https://en.wikipedia.org/wiki/B-spline B-spline]).
+
Decreases the multiplicity of a B-spline knot. (See [[B-Splines|this page]] for more info about B-splines).
 +
 
 +
<!--T:15-->
 +
B-splines are basically a combination of [[B-Splines#B.C3.A9zier_curves|Bézier curves]] (nicely explained in [https://www.youtube.com/watch?v=bE1MrrqBAl8 this] and [https://www.youtube.com/watch?v=xXJylM2S72s 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 ''C''<sup>''n''</sup> continuity) whereas <math>n=d-m</math>.<br/>
 +
Here is a cubic spline (<math>d=3</math>) whose knots have the multiplicity 1. The multiplicity is indicated by the number in parentheses. The indication can be changed using the toolbar button {{Button|[[File:Sketcher_BSplineKnotMultiplicity.svg|24px]] [[Sketcher_BSplineKnotMultiplicity|Show/hide B-spline knot multiplicity]]}}):
  
 
</translate>
 
</translate>
[[File:sketcher_SampleBSplineDecreaseKnotMultiplicity.png]]
+
[[File:Sketcher_KnotMultiplicity_multiplicity1.png|400px]]
 
<translate>
 
<translate>
 
<!--T:10-->
 
<!--T:10-->
{{Caption|B-spline curve showing decreasing knot multiplicity.}}
+
{{Caption|B-spline where both knots have the multiplicity 1.}}
 +
 
 +
<!--T:16-->
 +
A multiplicity of 3 will change this spline so that even the first order derivatives are not equal (''C''<sup>0</sup> continuity). Here is the same spline where the left's knot multiplicity was increased to 3:
 +
 
 +
</translate>
 +
[[File:Sketcher_KnotMultiplicity_multiplicity3.png|400px]]
 +
<translate>
 +
<!--T:17-->
 +
{{Caption|B-spline from above with knot multiplicity 3. A control point was moved to show that the knot has ''C''<sup>0</sup> continuity.}}
 +
 
 +
<!--T:18-->
 +
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:
 +
 
 +
</translate>
 +
[[File:Sketcher_KnotMultiplicity_locality.png|400px]]
 +
<translate>
 +
<!--T:19-->
 +
{{Caption|Effect of locality due to different multiplicity.}}
 +
 
 +
<!--T:20-->
 +
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.
 +
 
 +
<!--T:21-->
 +
'''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  ''C''<sup>3</sup> 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== <!--T:5-->
 
==Usage== <!--T:5-->
# Select a B-spline knot
+
 
# Invoke the tool using several methods:  
+
<!--T:14-->
#* Press the {{KEY|[[Image:Sketcher_BSplineDecreaseKnotMultiplicity.svg|24px]]}} button in the toolbar.
+
# Select a B-spline knot, either:  
#* Use the {{MenuCommand|Sketch → Sketcher B-spline tools → Decrease knot multiplicity}} entry in the top menu.
+
#* Press the button {{Button|[[File:Sketcher_BSplineDecreaseKnotMultiplicity.svg|24px]] [[Sketcher_BSplineDecreaseKnotMultiplicity|B-spline decrease knot multiplicity]]}}.
 +
#* Use the menu {{MenuCommand|Sketch → Sketcher B-spline tools → [[File:Sketcher_BSplineDecreaseKnotMultiplicity.svg|24px]] Decrease knot multiplicity}}.
 +
 
 +
<!--T:22-->
 +
'''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 (''C''<sup>0</sup> continuity) and this is not supported. (To create curves with an "edges", you can create two splines and connect them.)
  
 
<!--T:8-->
 
<!--T:8-->
Line 43: Line 75:
 
|[[Sketcher_Workbench|Sketcher]]
 
|[[Sketcher_Workbench|Sketcher]]
 
|IconL=Sketcher_BSplineIncreaseKnotMultiplicity.svg
 
|IconL=Sketcher_BSplineIncreaseKnotMultiplicity.svg
 +
|IconR=Sketcher_SwitchVirtualSpace.svg‎
 
|IconC=Workbench_Sketcher.svg
 
|IconC=Workbench_Sketcher.svg
|IconR=Sketcher SwitchVirtualSpace.png
+
}}
‎}}
 
 
 
<!--T:12-->
 
{{Sketcher Tools navi}}
 
 
 
<!--T:13-->
 
{{Userdocnavi}}
 
  
 
</translate>
 
</translate>
 +
{{Sketcher Tools navi{{#translation:}}}}
 +
{{Userdocnavi{{#translation:}}}}
 
{{clear}}
 
{{clear}}

Latest revision as of 16:35, 5 June 2021

Other languages:
Deutsch • ‎English • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский

Sketcher BSplineDecreaseKnotMultiplicity.svg Sketcher BSplineDecreaseKnotMultiplicity

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

Description

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.

Usage

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