Dictionnaire de mathématiques > Algèbre > Polynômes et fractions rationnelles > Familles de polynômes >
Courbes et fonctions B-splines
Les courbes B-splines sont des familles de courbes à paramètres très utilisées dans les logiciels de conception assistée par ordinateur. Elles sont définies en raccordant des morceaux de courbes polynômiales de sorte que le raccord soit suffisamment régulier.B-splines uniformes
Soit un ensemble de $n+m$ points $P_0,P_1,\dots,P_{n+m-1}$ du plan. On souhaite construire une
courbe composée de $n$ morceaux $C_k$, pour $k$ allant de $0$ à $n-1$, chaque courbe étant décrite
par le point $M_k(t)$, $t\in [0,1]$ définie par une relation vectorielle du type
$$\overrightarrow{OM_k(t)}=\sum_{i=0}^{i=m}R_m^i(t)\overrightarrow{OP_{k+i}}$$
et vérifiant les trois conditions suivantes :
- les fonctions $R_m^i$, $i=0,\dots,m$, sont des polynômes de degré au plus $m$;
- l'extrémité de l'arc $C_k$ coïncide avec l'origine de l'arc $C_{k+1}$, et le raccord est $m-1$ fois dérivable;
- la condition de normalisation $\sum_{i=0}^m R_i(t)=1$ doit être vérifiée quelque soit $t\in [0,1]$.
Définition : Soit $m\geq 1$. Les polynômes de Riesenfeld
de degré $m$ sont les polynômes
$$R_m^i(t)=(m+1)\sum_{k=0}^{m-i}(-1)^k \frac{(t+m-i-k)^m}{k!(m-k+1)!},\ i=0,\dots,m.$$
La courbe définie précédemment est alors appellée courbe B-spline uniforme associée aux points $P_0,\dots,P_{n+m-1}$.
Définition : Soient $P_0,P_1,\dots,P_{n+m-1}$ des points du plan. On appelle
courbe B-spline uniforme de polygone de contrôle $P_0,P_1,\dots,P_{n+m-1}$ la réunion des $n$ courbes suivantes :
$$\overrightarrow{OM_k(t)}=\sum_{i=0}^{i=m}R_m^i(t)\overrightarrow{OP_{k+i}}$$
avec $t\in [0,1]$ et $k\in {0,\dots,n-1}$.
Voici un exemple de courbe B-spline uniforme de degré 2 avec 4 points de contrôle :
B-splines
Les courbes B-splines généralisent les courbes B-splines uniformes car elles permettent un meilleur contrôle
de certaines propriétés (passage par certains points, dérivées,…), le prix à payer étant d'introduire un paramètre supplémentaire.
Définition : On appelle vecteur noeud toute suite finie de
réels $(t_0,\dots,t_k)$ tels que $t_i\leq t_{i+1}$.
Définition : Étant donné un vecteur noeud $(t_0,\dots,t_k)$, on appelle
fonctions B-splines associées à ce vecteur noeud les fonctions
$N_m^i$, pour $0\leq m\leq k-1$ et $0\leq i\leq k-m-1$ définies par les formules de récurrence :
Dans la définition précédente, on utilise la convention, en cas de noeud multiple (ie $t_i=t_{i+1}$),
qu'un quotient dont le dénominateur est nul est lui-même nul.
- $N_0^i(t)=1$ si $t\in [t_i,t_{i+1}[$, et $N_0^i(t)=0$ sinon;
- pour $m\geq 1$, $$N_m^i(t)=\frac{t-t_i}{t_{i+m}-t_i}N_{m-1}^i(t)+\frac{t_{i+m+1}-t}{t_{i+m+1}-t_{i+1}}N_{m-1}^{i-1}(t).$$
Définition : Étant donné un vecteur noeud $(t_0,\dots,t_k)$
et des points de contrôle $P_0,\dots,P_n$, la courbe B-spline
de degré $m$, avec $m+n+1=k$ associée est la courbe définie par
$$\overrightarrow{ON(t)}=\sum_{i=0}^n N_m^i(t)\overrightarrow{OP_i}.$$
Exemples :
- Si $t_i=i$ pour chaque $i$, alors on retrouve la définition des courbes B-splines uniformes;
- La courbe de Bézier associée à $n+1$ points de contrôle est la courbe B-Spline de degré $n$ avec comme nœuds les points $t_0 = t_1 = · · · = t_n = 0$ et $t_{n+1} = t_{n+2} = · · · = t_{2n+1} = 1$.
Consulter aussi...