Géométrie algorithmique - Génération de courbes
Courbes de Bézier
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 :
- le procédé algorithmique, i.e en construisant les n barycentres des paires \({M_i, M_{i+1}}\), affectés des coefficients 1-u et u, à partir des n+1 points de contrôle, puis en recommençant en calculant deux-à-deux les n-1 barycentres des n points obtenus jusqu'à n'obtenir qu'un seul point. On obtient la famille de points \(M_{i,j}\) définis récursivement par
- la méthode directe, i.e. celle qui consiste à manipuler les polynômes de Bernstein et à les évaluer avec la factorisation de Horner. On rappelle que le point générique de la courbe de Bézier \(M(u),\ u \in [0, 1]\) est défini par la fonction polynomiale
Où \(B_{n,p}(u)\) est le p-ième polynôme de Bernstein d'ordre n :
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\).