Les courbes de Bézier sont des courbes du plan défini à l'aide de la notion de barycentre. Cela permet de conserver leur allure lors de transformation affine dont les rotations et translation. Cela est particulièrement intéréssant pour la synthèse d'images ou le rendu de fontes. Les courbes de Bézier sont en particulier utilisées dans les images vectorielles SVG.
Soit et soient points du plan . On appelle courbe de Bézier de degré de points de contrôle , l'ensemble des barycentres de ces points affectés des coefficients prenant les valeurs des polynômes de Bernstein de degré :
On rappelle la définition des polynômes de Bernstein : . On remarque que sur donc les barycentres sont bien définis.
On a pour tout , donc nécessairement la courbe est à l'intérieur de l'enveloppe convexe des points de contrôle. On se place dans un repère orthonormal . Les points de la courbe vérifient :
d'où finalement l'expression analytique de la courbe :
La courbe est assez "sympatique". Tout d'abord, elle est car les coefficients sont des polynômes. Si on exprime les coordonnées des points dans la base (ou dans n'importe quelle base) on obtient deux polynômes de degré au plus donc de dérivée s'annulant au plus fois : la courbe change de direction verticalement et horizontalement au plus fois, donc elle a un comportement assez simple.
On remarque que si et donc . De même, on a . Ainsi, la courbe de Bézier part de pour arriver en . Si on calcule la dérivée de la courbe, on a :
On a alors :
A nouveau, les dérivée en et donnent :
La courbe est donc respectivement tangente en et aux droites et . Finalement, on obtient l'allure suivante pour :
Pour , l'équation devient : d'où
donc la courbe coïncide avec le segment .
On peut vérifier l'égalité :
Cela signifie que la courbe de Bézier de degré de points de contrôle ... s'obtient en prenant les barycentre de points et affectés des coefficient et . Les points et correspondant au points des courbes de Bézier de degré de points de contrôle respectifs ... et ...
En appliquant les résultats des deux paragraphes précédents, on peut construire récursivement les courbes de degré 2 ou plus. Par exemple pour les courbes quadratiques, on considère les deux courbes de Bézier de points de contrôle et qui ne sont rien d'autre que les segments et . En faisant parcourir les points et sur ces segments, et en prenant le barycentre comme indiqué plus haut, on obtient :
De la même façon, on obtiendrait une courbe de Bézier cubique à l'aide de deux courbes de Bézier quadratiques et ainsi de suite.
Dans la pratique, on s'intéresse surtout au courbe de Bézier linéaires, quadratiques et cubiques. Ces courbes sont en effets plus facile à calculer pour l'ordinateur et plus facile à concevoir pour le graphiste (peu de gens sont capables d'imaginer des courbes de Bézier de degré 18 à partir de ses points de contrôle).
Pour obtenir des courbes plus complexes, il suffit de relier plusieurs courbes de Bézier entre elles en faisant en sorte que le dernier point d'une courbe soit le premier de la suivante, ce qui est facile puisque les points de contrôle extrémaux appartiennent à la courbe. On obtient alors la notion de "chemin" que l'on retrouve dans divers logiciels d'image comme Gimp, Dia, Inkscape.
En SVG, un chemin est défini par l'élément <path/>.
Son attribut d est une chaine de caractères indiquant une
succession de déplacements qui réalise un tracé comme si on avait un
crayon. Le point courant est le dernier point tracé (position du crayon). Un
déplacement est indiqué par lettre suivie d'une liste de coordonnées. Il
existe divers types de déplacement en SVG (en)
dont en voici une partie :
Mx,y positionne le point courant en (x,y), ce qui
correspondrait à lever son crayon et à le placer sur ce point.Lx,y trace une ligne du point courant jusqu'en (x,y).Qx1,y1 x,y trace une courbe de Bézier quadratique
jusqu'en (x,y) avec (x1,x1) comme point de contrôle.Cx1,y1 x2,y2 x,y trace une courbe de Bézier cubique
jusqu'en (x,y) avec pour points de contrôle (x1,y1) et (x2,y2).z ferme le chemin, c'est-à-dire trace une ligne
droite du point courant jusqu'au point de départ.A pour tracer des arcs
elliptiques.Notons que si plusieurs déplacements successifs sont de même type, on est pas obliger de répeter la lettre. Voici un exemple de chemin en SVG enchainant courbe de Bézier linéaire, quadratique et cubique ainsi que le tracé qu'il produit :
<path d="M200,100 L200,200 Q100,299 50,200 C100,20 210,0 390,90"
fill="none" stroke="black" stroke-width="2"/>
Pour un point de raccordement, l'avant dernier point de la courbe précédente et le second point de la courbe suivante jouent un rôle particulier puisqu'il dirige les demi-tangentes. Dans les logiciels de traitement d'images, on trouve généralement trois types de contrôle :
T et S à la place de
Q et C.