Sketcher BSplinePoleWeight/fr

Description
Affiche ou masque l'affichage des poids pour les points de contrôle d'une courbe B-spline (voir ci-dessous pour une explication des poids).





Utilisation

 * 1) Sélectionnez une B-spline et appliquez.

Explication
Les B-splines sont essentiellement une combinaison de courbes de Bézier (bien expliqué ces vidéos ici et ici).

La courbe de Bézier est calculée à l'aide de cette formule:

$$\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}} $$

n est ici le degré de la courbe. Ainsi une courbe de Bézier de degré n est un polygone d'ordre n. Les facteurs $$P_{i}$$ sont ici en fait les coordonnées des points de contrôle des courbes de Bézier. Pour une visualisation, voir cette page.

Le terme poids dans FreeCAD est un peu trompeur car dans la littérature, les facteurs $$P_{i}$$ sont souvent également appelés poids. Les poids de FreeCAD sont quelque chose de différent. L'idée de ces poids est de modifier la spline afin que les différents points de contrôle soient "pondérés". L'idée est qu'un point avec poids 2 devrait avoir deux fois plus d'influence qu'un point avec poids 1. Ceci est réalisé en utilisant cette formule différente pour calculer la spline:

$$\quad \textrm{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}\;\;\;\,} $$

où $$w_{i}$$ est le poids pour le point $$P_{i}$$.

Il s'agit d'une nouvelle classe de courbes de Bézier car bien que les points soient effectivement pondérés comme souhaité, la courbe n'est plus un polynôme mais un polynôme fractionnaire. Par conséquent, ces courbes sont appelées courbes de Bézier rationnelles et les B-splines sont alors appelées B-splines rationnelles.

La conséquence est que vous gagnez en flexibilité dans la définition de la forme de la spline. Si tous les poids sont égaux, la forme de la spline ne change pas. Les pondérations les unes par rapport aux autres sont donc importantes, et non la valeur uniquement. Par exemple, cette spline a exactement la même forme que celle de la première image:



Un poids de zéro serait une singularité dans l'équation pour calculer les courbes de Bézier rationnelles, donc FreeCAD assure qu'il ne peut pas devenir nul. Néanmoins, les petites valeurs ont le même effet que si le point de contrôle n'existait presque pas:



Creation
Rational B-splines are created by setting a radius for the circles of the control points. That a radius has a unit must hereby ignored, the weight is always the radius in mm (or in the base length unit you set in the preferences). So a radius of 1 µm means a weight of 0.001. By default, meaning on creation time, all circles have the constraint to be equal. For the radius of the circle of the first point FreeCAD automatically sets a size constraint. Since all circles have the same radius, the set value is not important. So after creation you have a non-rational ("normal") B-spline.

To set a weight, remove the equality constraint for the circle of the desired point. You can now drag the circle to see the effect on changing its radius. But note: to set the weight fix so that further actions won't change it, you must set a size constraint.