Passer au contenu principal
AnalyseNotion · Glossaire

B-Spline

Une B-Spline est une courbe paramétrée polynomiale par morceaux, déterminée par des points de contrôle, un degré et une suite non décroissante de nœuds. Elle combine ces points par des fonctions de base à support limité : déplacer un point ne modifie qu’une portion de la courbe, ce qui facilite les retouches en CAO et en infographie.
B-Spline quadratique et polygone de contrôle Une courbe rouge relie les extrémités sous un polygone de contrôle noir formé de quatre points. P₀ P₁ P₂ P₃
La courbe rouge passe par (0 ; 0), (1 ; 1,5), (2 ; 2), (3 ; 1,5) et (4 ; 0), sous son polygone de contrôle.
Sommaire

Ce que vous allez apprendre

  • Identifier le rôle des points de contrôle, du degré et des nœuds.
  • Recalculer trois points d'une B-Spline quadratique.
  • Relier multiplicité d'un nœud et continuité garantie.
  • Distinguer une B-Spline d'une courbe de Bézier unique.

En clair

Imaginez une latte souple guidée par quelques repères. La courbe est influencée par ces points de contrôle sans devoir les traverser. Elle se compose d'un ou de plusieurs arcs polynomiaux, dont les raccordements sont généralement réguliers, sous réserve de la multiplicité des nœuds.
Le grand avantage est local : déplacer un repère ne déforme qu'une partie de la ligne. On peut donc retoucher un profil en CAO ou une forme en infographie sans reconstruire toute la courbe.

Définition

Une courbe B-Spline polynomiale est déterminée par des points de contrôle, un degré et une suite non décroissante de nombres appelée vecteur de nœuds. Les nœuds découpent le domaine du paramètre en intervalles. Sur chaque intervalle non vide, la courbe est un arc polynomial du degré choisi ; cet arc peut aussi être écrit sous forme de Bézier.
Le paramètre est noté u, les points de contrôle sont notés Pi, le degré est noté p et les fonctions de base associées aux nœuds sont notées Ni,p. La courbe C est la combinaison pondérée suivante :
C(u)=iNi,p(u)PiC(u)=\sum_i N_{i,p}(u)P_i
Les fonctions de base sont positives ou nulles et leur somme vaut 1 sur le domaine usuel de la courbe. Chacune est nulle hors d'un nombre limité d'intervalles : modifier Pi n'agit donc que là où Ni,p est non nulle. À un nœud intérieur simple, une B-Spline de degré p possède au moins une continuité d'ordre p − 1. Répéter ce nœud diminue la continuité garantie à la jonction.

Un exemple, pas à pas

Construisons une B-Spline quadratique plane. Les données sont : le degré p = 2 ; les points P0 = (0 ; 0), P1 = (1 ; 2), P2 = (3 ; 2) et P3 = (4 ; 0) ; le vecteur de nœuds (0, 0, 0, 1, 2, 2, 2).
1. Pour un paramètre 0 < u < 1, les trois fonctions de base non nulles, associées à P0, P1 et P2, valent respectivement (1 − u)2, 2u − 1,5u2 et 0,5u2. Le poids associé à P3 vaut 0, et la somme des quatre poids vaut bien 1.
2. En remplaçant u par 0,5, les poids de P0, P1, P2 et P3 sont 0,25 ; 0,625 ; 0,125 ; 0. Le point obtenu est :
C(0,5)=0,25P0+0,625P1+0,125P2=(1;1,5)C(0{,}5)=0{,}25P_0+0{,}625P_1+0{,}125P_2=(1;1{,}5)
3. Pour u = 1, les poids de P0, P1, P2 et P3 sont 0 ; 0,5 ; 0,5 ; 0 : ainsi C(1) = 0,5P1 + 0,5P2 = (2 ; 2). Pour u = 1,5, ils sont 0 ; 0,125 ; 0,625 ; 0,25 : ainsi C(1,5) = 0,125P1 + 0,625P2 + 0,25P3 = (3 ; 1,5). La symétrie des trois résultats contrôle le calcul, puisque les points de contrôle et les nœuds sont eux-mêmes symétriques.
La figure associe le polygone de contrôle aux points calculés. Elle montre que la courbe est guidée par P0, P1, P2 et P3, sans passer nécessairement par chacun d'eux.

En pratique

En CAO, le concepteur place des points de contrôle autour du profil recherché, puis déplace celui qui gouverne la zone à corriger. Le reste du profil demeure inchangé hors du support de la fonction de base correspondante.
En infographie, le même geste sert à lisser ou retoucher une longue forme composée de plusieurs arcs. Les nœuds permettent de répartir ces arcs et de régler leur raccordement.
Pour un arc unique, une courbe de Bézier peut suffire. Une B-Spline devient préférable lorsque la forme comporte plusieurs portions et que les retouches doivent rester locales.

À ne pas confondre

Une B-Spline ne se confond pas avec une courbe de Bézier unique. Une Bézier est un seul arc polynomial gouverné par tous ses points de contrôle. Une B-Spline est constituée d'un ou de plusieurs arcs polynomiaux selon son vecteur de nœuds : si le déplacement d'un point doit laisser intacte une portion éloignée, le contrôle local de la B-Spline fournit le critère qui tranche.

Limites et pièges

Les points de contrôle ne sont pas, en général, des points d'interpolation. Si une courbe attendue doit traverser une position donnée, placer simplement un point de contrôle à cette position ne suffit pas ; il faut imposer la condition d'interpolation dans la construction.
La continuité dépend de la multiplicité des nœuds. Pour un degré p et un nœud intérieur de multiplicité m au plus égale à p, la continuité garantie est d'ordre pm. Une multiplicité égale à p ne garantit donc que la continuité de la position, pas celle de la tangente.
Le paramètre u ne mesure pas automatiquement une longueur parcourue. Des pas égaux de u peuvent produire des distances différentes sur la courbe ; pour avancer à vitesse géométrique constante, il faut utiliser une paramétrisation adaptée à la longueur d'arc.

Pour aller plus loin

La courbe de Bézier permet d'étudier l'arc polynomial qui constitue chaque portion d'une B-Spline et le rôle géométrique de ses points de contrôle.
Continuez avec Tangente

Explorez les mathématiques autrement

Retrouvez nos magazines, podcasts et jeux pour explorer les mathématiques autrement.

Découvrir les offres