\input carnot.mac
\input psfig.sty
\guillemets
\line{PC2-98\hfil TP Maths-Info \no\ 1}
\sv
\centerline{\Gros\bf Étude des courbes de Bézier}
\SV

Il s'agit de courbes introduites par Bézier (ingénieur chez Renault) dans les
années 50 pour modéliser aisément des formes courbes à réaliser en construction
automobile. Mathématiquement, une {\it cubique de Bézier} est définie par 4
points dans un plan~: $A_0$, $A_1$, $A_2$ et $A_3$ appelés {\it points de
contrôle}. La courbe proprement dite est paramétrée par la relation~:
$$M(t) = (1-t)^3A_0 + 3t(1-t)^2A_1 + 3t^2(1-t)A_2 + t^3A_3,$$
c'est à dire~:
$$\syst{
x(t) = (1-t)^3x_0 + 3t(1-t)^2x_1 + 3t^2(1-t)x_2 + t^3x_3\cr
y(t) = (1-t)^3y_0 + 3t(1-t)^2y_1 + 3t^2(1-t)y_2 + t^3y_3,\cr}$$
avec $t$ variant dans $[0,1]$.
L'objectif du TP est d'étudier quelques propriétés mathématiques d'une telle
courbe en fonction des points $A_0$, $A_1$, $A_2$ et $A_3$.
On utilisera le logiciel Maple pour les calculs et les représentations
graphiques, le travail de réflexion restant à la charge de l'élève.
\sv

\noindent{\gros\bf 1. Aspects techniques~:}\sv
Un point sera représenté sous Maple par une liste de deux nombres,
son abscisse et son ordonnée.
Le point $A_0$ peut par exemple être défini sous Maple par~:

\verbatim?
A0 := [1,2];
?endverbatim
\noindent ou
\verbatim?
A0 := [x0,y0];
?endverbatim
\noindent si l'on doit travailler avec des coordonnées arbitraires.
Les coordonnées d'un point $M$ peuvent être obtenues au besoin par les
formules~:

\verbatim?
M[1]; M[2];
?endverbatim
\sv

Pour pouvoir calculer une combinaison linéaire de points, charger le
{\it package} {\tt linalg} qui contient, entre autres, la fonction
{\tt evalm} (évaluation matricielle)~:

\verbatim?
> t*[1,2] + [3,4];
                               t [1, 2] + [3, 4]

> with(linalg):
Warning, new definition for norm
Warning, new definition for trace
> evalm(t*[1,2] + [3,4]);
                               [t + 3, 2 t + 4]
?endverbatim
\sv

Pour afficher un dessin, utiliser la fonction {\tt plot}~:

\verbatim?
plot([?sltt?let?next= liste de points?tt]);
plot([x(t),y(t),t=0..1]);
?endverbatim
\sv

Consulter l'aide en ligne de {\tt plot} pour voir les options disponibles.
Pour superposer plusieurs dessins, ranger chaque dessin dans une variable
et afficher la liste des dessins avec la fonction {\tt plots[display]}
(ou {\tt display} seulement si vous avez déjà chargé le package {\tt plots})~:

\verbatim?
dessin1 := plot([?sltt liste de points?tt],color=black):
dessin2 := plot([x(t),y(t),t=0..1],color=red):
plots[display]([dessin1,dessin2]);
?endverbatim
\sv

\noindent{\gros\bf 2. Manipulations élémentaires~:}\sv

Définir une fonction {\tt Bezier} prenant quatre points $A_0$, $A_1$, $A_2$,
$A_3$ et un paramètre $t$ et retournant le point de Bézier correspondant.

Tracer sur un même dessin une courbe de Bézier et la ligne brisée joignant
les points de contrôle. Modifier les coordonnées des points de contrôle et
observer l'effet sur la courbe de Bézier.
\sv

\noindent{\gros\bf 3. Propriété géométrique~:}\sv

Démontrer que la courbe de Bézier est tangente aux segments $[A_0,A_1]$
et $[A_2,A_3]$. Les calculs nécessaires seront conduits avec des points de
contrôle formels.
\sv

Démontrer (par raisonnement) que la courbe de Bézier est entièrement incluse
dans le quadrilatère convexe de sommets $A_0$, $A_1$, $A_2$, $A_3$.
\sv

\noindent{\gros\bf 4. Dichotomie~:}\sv

Aux points de contrôle $A_0$, $A_1$, $A_2$, $A_3$ on associe les points
$A_{01}$, $A_{12}$, $A_{23}$ milieux des segments
$[A_0,A_1]$, $[A_1,A_2]$, $[A_2,A_3]$
puis $A_{012}$, $A_{123}$ milieux des segments
$[A_{01},A_{12}]$, $[A_{12},A_{23}]$
et enfin $A_{0123}$ milieu du segment $[A_{012},A_{123}]$.
\sv
\centerline{\psfig{file=bezier1.eps,width=85mm}}
\sv

Vérifier par un calcul formel que la courbe de Bézier associée aux points
$A_0$, $A_1$, $A_2$, $A_3$ est la réunion des courbes de Bézier associées
aux points $A_0$, $A_{01}$, $A_{012}$, $A_{0123}$ et $A_{0123}$, $A_{123}$,
$A_{23}$, $A_3$.
\sv

Cette propriété est utilisée pour tracer approximativement une courbe
de Bézier~: on la divise en deux sous-arcs un certain nombre de fois, puis
on trace la ligne brisée joignant les points de contrôle ainsi obtenus.
Effectuer ce tracé sur un exemple.
\sv

Pour apprécier la proximité entre la courbe théorique et la ligne brisée des
points de contrôle, on majore la somme des aires des quadrilatères de sommets
les points de contrôle. Puisque la courbe de Bézier est incluse dans la réunion
de ces quadrilatères, plus cette somme est petite, plus l'approximation est
bonne. Calculer formellement les aires $S_0$, $S_1$ et $S_2$ représentées
sur la figure ci-dessous et déterminer une relation simple entre $S_0$, $S_1$,
$S_2$. Justifier alors la "convergence" du procédé dichotomique.
\sv\sv
\centerline{\psfig{file=bezier2.eps,width=\hsize}}\sv
\sv
On rappelle que l'aire d'un triangle de sommets $A,B,C$ vaut
$\frac 12\det(\vct{AB},\vct{AC})$ lorsque ces sommets sont décrits dans le sens
direct.
\sv
Pour les 5/2~: L'aire $S$ entre la courbe de Bezier et la ligne polygonale des
points de contrôle peut être calculée par une intégrale curviligne (laquelle~?).
Effectuer le calcul et exprimer $S$ en fonction de $S_0$ et $S_1$.
\sv
\noindent{\bf 5. Approximation d'un arc de cercle~:}\sv

Il n'existe pas d'arc de Bézier non réduit à un point inclus dans un
cercle (pourquoi~?). On cherche ici l'arc de Bézier approchant "au mieux"
le quart de cercle unité. Compte tenu des propriétés géométriques vues
précédemment et de la symétrie du problème, on prend pour points de
contrôle les points~:
$$A_0 = [1,0],\quad
  A_1 = [1,\lambda],\quad
  A_2 = [\lambda,1],\quad
  A_3 = [0,1],$$
où $\lambda$ est un paramètre à déterminer de sorte que la quantité~:
$d(\lambda) = \max\{|x^2(t)+y^2(t)-1|,\ 0\le t\le 1\}$ soit minimale.
Déterminer les extrémums sur $[0,1]$ de la fonction $x^2+y^2-1$ en fonction
du paramètre $\lambda$ et chercher pour quelle valeur de $\lambda$
$d$ est minimale.

\bye


