Sketcher BSplinePoleWeight: Difference between revisions

From FreeCAD Documentation
mNo edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>
{{Page_in_progress}}
<translate>
<translate>


Line 25: Line 24:


<!--T:9-->
<!--T:9-->
The [[Image:Sketcher_BSplinePoleWeight.svg|24px]] [[Sketcher_BSplinePoleWeight|Sketcher BSplinePoleWeight]] tool shows or hides the B-spline control point weight in all sketches. See [[#Weight_explanation|below]] for an explanation about weights.
The [[Image:Sketcher_BSplinePoleWeight.svg|24px]] [[Sketcher_BSplinePoleWeight|Sketcher BSplinePoleWeight]] tool shows or hides the [[B-Splines|B-spline]] control point weight in all sketches.


</translate>
</translate>
Line 39: Line 38:
#* Press the {{Button|[[Image:Sketcher_BSplinePoleWeight.svg|16px]] [[Sketcher_BSplinePoleWeight|Show/hide B-spline control point weight]]}} button.
#* Press the {{Button|[[Image:Sketcher_BSplinePoleWeight.svg|16px]] [[Sketcher_BSplinePoleWeight|Show/hide B-spline control point weight]]}} button.
#* Select the {{MenuCommand|Sketch → Sketcher visual → Show/hide B-spline information layer → [[Image:Sketcher_BSplinePoleWeight.svg|16px]] Show/hide B-spline control point weight}} option from the menu.
#* Select the {{MenuCommand|Sketch → Sketcher visual → Show/hide B-spline information layer → [[Image:Sketcher_BSplinePoleWeight.svg|16px]] Show/hide B-spline control point weight}} option from the menu.

==Weight explanation== <!--T:16-->

<!--T:17-->
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).

<!--T:18-->
A Bézier curve is calculated using this formula:

<!--T:19-->
<math>\quad
\textrm{Bezier}(n,t)=\sum_{i=0}^{n}\underbrace{\binom{n}{i}}_{\text{polynomial term}}\underbrace{\left(1-t\right)^{n-i}t^{i}}_{\text{polynomial term}}\; \underbrace{P_{i}}_{\text{point coordinate}}
</math>

<!--T:20-->
Where ''n'' is the degree of the curve. So a Bézier curve of degree ''n'' is a polygon with order ''n''. The factors <math>P_{i}</math> are in fact the coordinates of the Bézier curves' control points. For a visualization see [https://pomax.github.io/bezierinfo/#control this page].

<!--T:21-->
The term weight in FreeCAD is a bit misleading because in literature the factors <math>P_{i}</math> are often called weights as well. FreeCAD's weights are something different. The idea of these weights is to modify the spline so that the different control points are "weighted". The idea is that a point with weight 2 should have twice as much influence as a point with weight 1. This is achieved by using this different formula to calculate the spline:

<!--T:22-->
<math>\quad
\mathrm{Rational\ Bezier}(n,t)=\cfrac{\sum_{i=0}^{n}\binom{n}{i}\left(1-t\right)^{n-i}t^{i}w_{i}P_{i}}{\sum_{i=0}^{n}\binom{n}{i}\left(1-t\right)^{n-i}t^{i}w_{i}\;\;\;\,}
</math>

<!--T:23-->
Where <math>w_{i}</math> is the weight for the point <math>P_{i}</math>.

<!--T:24-->
This is a new class of Bézier curves, the curve is no longer a polynomial but a fractional polynomial. These curves are called rational Bézier curves and the B-splines created from them are called rational B-splines.

<!--T:25-->
The consequence is that you gain more flexibility in defining the spline shape. If all weights are equal, the shape of the spline does not change. So the weights relative to each other is important, not the value alone. For example this spline has exactly the same shape as the one in the first image:

</translate>
[[File:sketcher_BSplineWeightDouble.png|468px]]
<translate>
<!--T:26-->
{{Caption|Same B-spline as in first image but with different absolute weight values}}

<!--T:27-->
A weight of zero would be a singularity in the equation to calculate the rational Bézier curves, therefore FreeCAD assures that it cannot become zero. Nevertheless, small values have the same effect as if the control point would almost not exist:

</translate>
[[File:sketcher_BSplineWeightZero.png|468px]]
<translate>
<!--T:28-->
{{Caption|Same B-spline with an almost zero weight control point}}


==Changing weights== <!--T:29-->
==Changing weights== <!--T:29-->

Latest revision as of 09:00, 23 April 2024

Sketcher BSplinePoleWeight

Menu location
Sketch → Sketcher visual → Show/hide B-spline information layer → Show/hide B-spline control point weight
Workbenches
Sketcher
Default shortcut
None
Introduced in version
0.19
See also
Sketcher CreateBSpline

Description

The Sketcher BSplinePoleWeight tool shows or hides the B-spline control point weight in all sketches.

The numbers (green, in square brackets) refer to the weights of the control points.

Usage

  1. There are several ways to invoke the tool:
    • Press the Show/hide B-spline control point weight button.
    • Select the Sketch → Sketcher visual → Show/hide B-spline information layer → Show/hide B-spline control point weight option from the menu.

Changing weights

How to change weights is described on this page.