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:



Création
Les B-splines rationnelles sont créées en définissant un rayon pour les cercles des points de contrôle. Le fait qu'un rayon a une unité doit être ignoré, le poids est toujours le rayon en mm (ou dans l'unité de longueur de base que vous définissez dans les préférences). Ainsi, un rayon de 1 µm signifie un poids de 0,001. Par défaut, c'est-à-dire au moment de la création, tous les cercles ont la contrainte d'être égaux. Pour le rayon du cercle du premier point, FreeCAD définit automatiquement une contrainte de taille. Comme tous les cercles ont le même rayon, la valeur définie n'est pas importante. Ainsi, après la création, vous avez une B-spline non rationnelle ("normale").

Pour définir une pondération, supprimez la contrainte d'égalité du cercle du point souhaité. Vous pouvez maintenant faire glisser le cercle pour voir l'effet sur le changement de son rayon. Mais notez: pour définir le poids fixe afin que d'autres actions ne le changent pas, vous devez définir une contrainte de taille.