Géométrie algorithmique - TP 3

Génération de courbes

Exercice 1. Ecrire un programme qui trace des courbes de Bézier dans le cas le plus courant, c'est-à-dire les courbes de Bézier à quatre points de contrôle : \(M_0 = (x_0, y_0)\), \(M_1 = (x_1, y_1)\), \(M_2 = (x_2, y_2)\), \(M_3 = (x_3, y_3)\).

Dans cet exercice, les quatre points de contrôle seront définis dans le programme. En revanche, ce dernier doit demander à l'utilisateur de saisir le nombre de points d'interpolation permettant de tracer cette courbe et la dimension de la fenêtre écran (le calcul de la dimension de la fenêtre - window - dans l'espace euclidien reste à la charge du programme).

Pour faire le tracé, on utilisera les deux méthodes :

\[\begin{aligned} M_{i,j}=\left\{\!\!\!\begin{array}{ll} \ M_i&\mbox{si $j=0$,}\\ \ (1-u)M_{i,j-1}+uM_{i+1,j-1}&\mbox{si $j\not=0$.} \end{array}\right. \end{aligned}\]

\[M(u) = B_{n,0}(u).M_0 + B_{n,1}(u).M_1 + B_{n,2}(u).M_2 + \dots + B_{n,n}(u).M_n\]

Où \(B_{n,p}(u)\) est le p-ième polynôme de Bernstein d'ordre n :

\[B_{n,p}(u) := {n\choose p}\ u^p (1-u)^{n-p}\]


Exercice 2. Intégrer ce travail dans un programme plus spécifique qui permet de fixer les points de contrôle en cliquant à la souris dans la fenêtre graphique (la définition de la courbe de Bézier se fait donc directement dans l'espace écran).

Faire en sorte qu'il soit également possible de déplacer ces points de contrôle en réaffichant la courbe au fur et à mesure des modifications.


Exercice 3. Modifier le programme pour qu'il permette de construire une courbe de Bézier par morceaux. Pour cela, l'utilisateur définira les points de contrôle successifs nécessaires à la construction d'une telle courbe, le programme se chargeant de fixer automatiquement la position de certains points pour assurer les conditions de continuité \(C^0\) et du premier ordre \(C^1\).