B-spline

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En mathématiques, une B-spline est une combinaison linéaire de splines positives à support compact minimal. Les B-splines sont la généralisation des courbes de Bézier, elles peuvent être à leur tour généralisées par les NURBS.

Définition[modifier | modifier le code]

Étant donné m+1 nœuds ti dans [0, 1] avec

0 \le t_0 \le t_1 \le \ldots \le t_m \le 1

une courbe spline de degré n est une courbe paramétrique

\mathbf{S} \,:\, [0,1] \to \mathbb{R}^d

composée de fonctions B-splines de degré n

\mathbf{S}(t) = \sum_{i = 0}^{m - n - 1} b_{i, n} (t) . \mathbf{P}_{i} \,,\, t \in [0, 1],

où les Pi forment un polygone appelé polygone de contrôle ; le nombre de points composant ce polygone est égal à m-n.

Les m-n fonctions B-splines de degré n sont définies par récurrence sur le degré inférieur :

b_{j, 0}(t) := \left\{
\begin{matrix}
1 & \mathrm{si} \quad t_j \leqslant t < t_{j + 1} \\
0 & \mathrm{sinon}
\end{matrix}
\right.
b_{j, n}(t) := \frac{t - t_j}{t_{j + n} - t_j} b_{j, n - 1}(t) + \frac{t_{j + n + 1} - t}{t_{j + n + 1} - t_{j + 1}} b_{j + 1, n - 1}(t).

Quand les nœuds sont équidistants, c’est-à-dire quand ils sont en progression arithmétique, les B-splines sont dites « uniformes » : c'est le cas des courbes de Bézier qui sont des B-splines uniformes, dont les nœuds ti (pour i entre 0 et m) forment une suite arithmétique de 0 à 1 avec un pas constant 1/m, et où le degré n de la courbe de Bézier ne peut être supérieur à m).

Par extension, lorsque deux nœuds successifs t_j et t_{j+1} sont confondus, on pose \frac{0}{0} = 0 : cela a pour effet de définir une discontinuité de la tangente, pour le point de la courbe paramétré par une valeur de t, donc d'y créer un sommet d'angle non plat ; toutefois il est souvent plus simple de définir ce « B-spline étendu » comme l'union de deux B-splines définis avec des nœuds distincts, ces splines étant simplement joints par ce sommet commun, sans introduire de difficulté dans l'évaluation paramétrique ci-dessus des B-splines pour certaines valeurs du paramètre t. Mais cela permet de considérer alors tout polygone simple comme un B-spline étendu.

Propriétés[modifier | modifier le code]

La forme des fonctions de base est déterminée par la position des nœuds.

La courbe est à l'intérieur de l'enveloppe convexe des points de contrôle.

Une B-spline de degré n

b_{i,n}(t)

est non nulle dans l'intervalle [ti, ti+n+1] :

b_{i,n}(t) = \left\{\begin{matrix} 
>0 & \mathrm{si} \quad t_{i} \leqslant t < t_{i+n+1} \\
0 & \mathrm{sinon} 
\end{matrix}
\right.

En d'autres termes, déplacer un point de contrôle ne modifie que localement l'allure de la courbe.

Liens internes[modifier | modifier le code]

Liens externes[modifier | modifier le code]