Retour

Modélisation géométrique

🎲 Quiz GRATUIT

📝 Mini-cours GRATUIT

Modélisation géométrique

Définition des polynômes de Berstein :

Soit $n$ un entier naturel, $k$ un entier tel que $0 \leq k \leq n$ et $t$ un réel.

$$B_{k,n}(t) =\left(\begin{array}{c}n\\k\end{array}\right)t^k(1-t)^{n-k}$$ est un polynôme de degré $n$ appelé polynôme de Berstein.

On a $$\left(\begin{array}{c}n\\k\end{array}\right) = \frac{n!}{k!(n-k)!}.$$

Exemple:

Si $n=2$ alors $B_{0,2}(t) = (1-t)^2$, $B_{1,2}(t) = 2t(1-t)$ et $B_{2,2}(t) = t^2$.

Théorème:

Pour tout réel $t$, $\sum_{k=0}^nB_{k,n}(t)=1$.

Définition d'une courbe de Bézier.

Soient $P_0$, $P_1$, $\ldots$, $P_n$ des points du plan. La courbe de Bézier pilotée par les points $P_0$, $P_1$, $\ldots$, $P_n$ est l'ensemble des points $M(t)$ barycentres des points pondérés $(P_0,B_{0,n}(t)), (P_1,B_{1,n}(t)), \ldots, (P_n,B_{n,n}(t))$.

Autrement dit: $$\overrightarrow{OM(t)} = \sum_{k=0}^nB_{k,n}(t)\overrightarrow{OP_k}.$$

Exemple:

Si $n=2$ alors $$\overrightarrow{OM(t)} = (1-t)^2\overrightarrow{OP_0} + 2t(1-t)\overrightarrow{OP_1} + t^2\overrightarrow{OP_2}.$$

Théorème (tangente en un point de la courbe):

Soit $P(t)$ le barycentre de $(P_0,B_{0,n-1}(t)), \ldots, (P_{n-1},B_{n-1,n-1}(t))$ et $Q(t)$ le barycentre de $(P_1,B_{0,n-1}(t)), \ldots, (P_{n},B_{n-1,n-1}(t))$. La droite $P(t)Q(t)$ est tangente à la courbe au point $M(t)$.

Construction par barycentres successifs.

De plus, $M(t)$ est le barycentre de $(P(t),1-t),(Q(t),t)$ ce qui fournit un procédé constructif d'une courbe de Bézier.

Exemple avec 3 points de contrôle $P_0,P_1,P_2$ :

Soient $G_1(t)$ barycentre de $(P_0,1-t)$ et $(P_1,t)$ et $G_2(t)$ barycentre de $(P_1,1-t)$ et $(P_2,t)$.

$M(t)$ est alors le barycentre de $(G_1,1-t)$ et $(G_2,t)$.

Courbe B-Spline

1) Soient 4 points $P_0$, $P_1$, $P_2$ et $P_3$ du plan. On veut construire deux courbes $C_0$ et $C_1$.

$C_0$ a pour représentation $\overrightarrow{OM_0}(t) = R_0(t).\overrightarrow{OP_0} + R_1(t).\overrightarrow{OP_1} + R_2(t).\overrightarrow{OP_2}$.

$C_1$ a pour représentation $\overrightarrow{OM_1}(t) = R_0(t).\overrightarrow{OP_1} + R_1(t).\overrightarrow{OP_2} + R_2(t).\overrightarrow{OP_3}$.

Avec $R_0$, $R_1$ et $R_2$ des polynômes de degré $2$ et $t$ un paramètre dans $[0,1]$.

On veut que les courbes vérifies les contraintes suivantes :

Condition 1 : les courbes $C_0$ et $C_1$ sont indépendantes du repère choisi. Cela revient à dire que $M_0$ est le barycentre du système pondéré $(P_0,R_0)$, $(P_1,R_1)$ et $(P_2,R_2)$ et $M_1$ est le barycentre du système pondéré $(P_1,R_0)$, $(P_2,R_1)$ et $(P_3,R_2)$.

En particulier, cela impose la condition $R_0(t) + R_1(t) + R_2(t) = 1$.

Condition 2 : les courbes $C_0$ et $C_1$ se raccordent. Cela veut dire que $\overrightarrow{OM_0}(1) = \overrightarrow{OM_1}(0)$.

On montre que cela est équivalent aux relations $R_0(1) = 0$, $R_1(1) = R_0(0)$, $R_2(1) = R_1(0)$ et $R_2(1) = 0$.


Condition 3 : les courbes $C_0$ et $C_1$ ont même tangente au point de raccordement. Cela veut dire que
$\overrightarrow{OM_0}'(1) = \overrightarrow{OM_1}'(0)$.

On montre que cela est équivalent aux relations $R_0'(1) = 0$, $R_1'(1) = R_0'(0)$, $R_2'(1) = R_1'(0)$ et $R_2'(1) = 0$.


Les polynômes $R_0$, $R_1$ et $R_2$ sont de degré $2$ donc ils s'écrivent

$\left\{
\begin{array}{lll}
R_0(t) & = & a_0t^2 + b_0t + c_0\\
R_1(t) & = & a_1t^2 + b_1t + c_1\\
R_2(t) & = & a_2t^2 + b_2t + c_2\\
\end{array}
\right.$

Les conditions 1, 2 et 3 mènent à un système de 9 équations à 9 inconnues. En résolvant ce système, on obtient des polynômes :

$\displaystyle{R_0(t) = \frac{t^2}{2} -t + \frac{1}{2}, R_1(t) = -t^2 +t + \frac{1}{2}, R_2(t) = \frac{t^2}{2}}$.

Définition: la réunion des courbes $C_0$ et $C_1$ s'appelle la courbe B-spline associée aux 4 points de contrôle $P_0$, $P_1$, $P_2$ et $P_3$.

Les 3 polynômes $R_0$, $R_1$ et $R_3$ s'appellent les polynômes de Riesenfeld du second degré.

2) Exemple. Considérons les 4 points $P_0(1,2)$, $P_1(2,0)$, $P_2(3,4)$ et $P_3(4,1)$.

$C_0$ a alors pour représentation paramétrique

$\displaystyle{\overrightarrow{OM_0}(t) = R_0(t).\overrightarrow{OP_0} + R_1(t).\overrightarrow{OP_1} + R_2(t).\overrightarrow{OP_2}= \left(\frac{t^2}{2} -t + \frac{1}{2}\right)
\left(
\begin{array}{c}
1\\
2
\end{array}
\right)
+
\left(-t^2 +t + \frac{1}{2}\right)
\left(
\begin{array}{c}
2\\
0
\end{array}
\right)
+
\left(\frac{t^2}{2}\right)
\left(
\begin{array}{c}
3\\
4
\end{array}
\right)
}$.

On a donc les équations paramétriques :

$C_0:\left\{
\begin{array}{lll}
x(t) & = & t+3/2\\
y(t) & = & 3t^2-2t+1
\end{array}
\right.$


$C_1$ a alors pour représentation paramétrique

$\displaystyle{\overrightarrow{OM_1}(t) = R_0(t).\overrightarrow{OP_1} + R_1(t).\overrightarrow{OP_2} + R_2(t).\overrightarrow{OP_3}= \left(\frac{t^2}{2} -t + \frac{1}{2}\right)
\left(
\begin{array}{c}
2\\
0
\end{array}
\right)
+
\left(-t^2 +t + \frac{1}{2}\right)
\left(
\begin{array}{c}
3\\
4
\end{array}
\right)
+
\left(\frac{t^2}{2}\right)
\left(
\begin{array}{c}
4\\
1
\end{array}
\right)
}$.

On a donc les équations paramétriques :

$C_0:\left\{
\begin{array}{lll}
x(t) & = & t+5/2\\
y(t) & = & -7/2 t^2+4t+2
\end{array}
\right.$

3) Différences entre courbe B-spline et courbe de Bézier.

Lorsqu'on modifie un point de contrôle d'une courbe de Bézier, toute la courbe est modifiée Lorsqu'on déplace un point de contrôle d'une courbe B-spline, seule une partie de la courbe est modifiée. On dit que la méthode B-spline est locale alors que la méthode de Bézier est globale.

4) Généralisation : fonction B-splines.

a) Vecteur nœud.

Définition : on appelle vecteur-nœud une suite d'entiers naturels $(t_0,t_1,\ldots,t_k)$ tels que :

$t_0=0$ et soit $t_{i+1} = t_i+1$ soit $t_{i+1}=t_i$.

Le nombre $t_i$ s'appelle un nœud.

Exemples :

$(0,1,2,3,4)$ est un vecteur-nœud alors que $(0,1,1,3,4)$ n'est pas un vecteur-nœud car $t_3 =t_2+2$.

Définition des fonctions B-splines : soit $(t_0,t_1,\ldots,t_k)$ un vecteur-nœud donné. Les fonctions B-splines de degré $m$ associés à ce vecteur-nœud sont définies sur ${\Bbb R}$ par les formules suivantes :

$N_{(i,0)}(t) = 1$ si $t_i \le t < t_{i+1}$ et $0$ sinon.

Puis pour $m=1,2,3, \ldots$, $\displaystyle{N_{i,m}(t) = \frac{t-t_i}{t_{i+m}-t_i}N_{i,m-1}(t) + \frac{t_{i+m+1}-t}{t_{i+m+1}-t_{i+1}}N_{i+1,m-1}(t)}$.

Par convention, si un des dénominateurs est nul alors on annule le terme correspondant.

Exemples : soit le nœud $(0,1,2,3)$. On a donc $t_0=0$, $t_1=1$, $t_2=2$ et $t_3=3$.

Prenons $m=0$ et déterminons les $3$ fonctions splines de degré $m=0$.

$N_{0,0}(t) = 1$ si $0 \le t <1$ et $0$ sinon.
1
$N_{1,0}(t) = 1$ si $1 \le t <2$ et $0$ sinon.
2
$N_{2,0}(t) = 1$ si $2 \le t <3$ et $0$ sinon.
3
Il n'y a pas de $N_{3,0}$, $N_{4,0}$, $\ldots$ (car $t_4$, $t_5$, etc n'existent pas).


Prenons $m=1$ et déterminons les $2$ fonctions splines de degré $m=1$.

$\displaystyle{N_{0,1}(t) = \frac{t-t_0}{t_1-t_0}N_{0,0}(t) + \frac{t_{2}-t}{t_2-t_1}N_{1,0}(t) =
t N_{0,0}(t) + (2-t)N_{1,0}(t)}$.

$\displaystyle{N_{1,1}(t) = \frac{t-t_1}{t_2-t_1}N_{1,0}(t) + \frac{t_{3}-t}{t_3-t_2}N_{2,0}(t) =
(t-1) N_{1,0}(t) + 3-tN_{2,0}(t)}$.

Il n'est pas possible de calculer $N_{2,1}$ car l'expression de $N_{2,1}$ comporte $N_{3,0}$ et le nœud $t_4$ qui n'existent pas. C'est pour cela qu'il n'y a que deux fonctions B-spline de degré $1$.


Pour $m=2$, il n'y a qu'une seule fonction B-spline de degré $2$.

On trouve $\displaystyle{N_{(0,2)}(t) = \frac{t}{2}N_{0,1}(t) + \frac{3-t}{2}N_{1,1}(t)}$.

Résumons dans un tableau selon les valeurs de $t$ les expressions des fonctions B-splines

Le graphe des fonctions B-splines est :





Définition d'une fonction B-spline : la courbe B-spline associé à $n+1$-points de contrôle $P_0$, $P_1$, $\ldots $, $P_n$ est définie par
$\displaystyle{\overrightarrow{OM}(t) = \sum_{i=0}^{n}N_{i,m}(t)\overrightarrow{OP_i}}$.

Remarque : les fonctions $N_{i,m}$ dépendent du choix d'un vecteur-nœud. Pour calculer $N_{i,m}$, il faut un vecteur-nœud de longueur au moins $i+m+2$ et pour une courbe B-spline il faut un vecteur-nœud de longueur au moins égal Nombre de Points + degré + 1.

Exemple: on considère le vecteur-nœud : $(0,0,0,1,2,3,3,3)$ et on considère $5$ points de contrôle $P_{0}(1,0)$, $P_{1}(4,2)$, $P_{2}(2,4)$, $P_{3}(0,4)$ et $P_{4}(-4,4)$.

Les fonctions B-splines de degré $2$ sont :



La courbe B-spline associée à ce vecteur-nœud et ces points de contrôle est
$\displaystyle{\overrightarrow{OM}(t) = \sum_{i=0}^{4}N_{i,2}(t)\overrightarrow{OP_i}}$.


Après calcul, on trouve que

- sur $]-\infty,0]$ et sur $[3,+\infty[$ la coure B-spline est nulle
- sur $[0,1]$, on a les équations paramétriques :

$\left\{
\begin{array}{lll}
x(t) & = & -4t^2+6t+1\\
y(t) & = & -t^2+4t
\end{array}
\right.$

- sur $[0,1]$, on a les équations paramétriques :

$\left\{
\begin{array}{lll}
x(t) & = & -2t+5\\
y(t) & = & -t^2+4t
\end{array}
\right.$

- sur $[2,3]$, on a les équations paramétriques :

$\left\{
\begin{array}{lll}
x(t) & = & -3t^2+10t-7\\
y(t) & = & 4
\end{array}
\right.$

On obtient la courbe :


Nomad+, Le pass illimité vers la réussite 🔥

NOMAD EDUCATION

L’app unique pour réussir !