Courbe de Bézier - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

Les courbes de Bézier sont des courbes polynomiales paramétriques décrites pour la première fois en 1962 par l'ingénieur français Pierre Bézier qui les utilisa pour concevoir des pièces d'automobiles à l'aide d'ordinateurs. Elles ont de nombreuses applications dans la synthèse d'images et le rendu de fontes. Elles ont donné naissance à de nombreux autres objets mathématiques.

Théorie générale

Pour n+1 points de contrôle (P_0, \dots, P_n), on définit une courbe de Bézier par l'ensemble des points \sum_{i=0}^n B_i^n(t)P_i, t \in[0,1] et où les B_i^n sont les polynômes de Bernstein. Le polygone P_0, \dots, P_n est appelé " polygone convexe de Bézier ".

Remarque : Puisque \sum_{i=0}^n B_i^n(t) = 1, alors la courbe est correctement définie. Chaque point de la courbe peut être vu comme un barycentre des points de contrôle.

Propriétés :

  • La courbe est à l'intérieur de l'enveloppe convexe des points de contrôle.
  • La courbe commence par le point P0 et se termine par le point Pn, mais ne passe pas a priori par les autres points de contrôle qui déterminent cependant l'allure générale de la courbe.
  • \overrightarrow{P_0P_1} est le vecteur tangent à la courbe en P0 et \overrightarrow{P_{n-1}P_n} au point Pn.
  • Une courbe de Bézier est infiniment dérivable.
  • La courbe de Bézier est un segment si et seulement si les points de contrôle sont alignés.
  • Chaque restriction d'une courbe de Bézier est aussi une courbe de Bézier.
  • Un arc de cercle ne peut pas être décrit par une courbe de Bézier, quel que soit son degré.
  • Le contrôle de la courbe est global : modifier un point de contrôle modifie toute la courbe, et non pas un voisinage du point de contrôle.
  • Pour effectuer une transformation affine de la courbe, il suffit d'effectuer la transformation sur tous les points de contrôle.

Technique

Quatre points P0, P1, P2 et P3 définissent une courbe de Bézier cubique. La courbe se trace en partant du point P0, en se dirigeant vers P1 et en arrivant au point P3 selon la direction P2-P3. En général, la courbe ne passe ni par P1 ni par P2 : ces points sont simplement là pour donner une information de direction. La distance entre P0 et P1 détermine la " longueur " du déplacement dans la direction de P1 avant de tourner vers P3.

La forme paramétrique de la courbe s'écrit:

P(t) = P0 (1 - t)3 + 3 P1 t (1 - t)2 + 3 P2 t2 (1 - t) + P3 t3    pour 0 ≤ t ≤ 1.

Remarquons que les coefficients binomiaux apparaissent dans l'ordre (1, 3, 3, 1). La formule est inspirée d'une loi binomiale et montre que la courbe est toujours complètement contenue dans l'enveloppe convexe des quatre points donnés. Les courbes de Bézier sont intéressantes pour le traitement des images pour deux raisons principales :

  • Les points peuvent être rapidement calculés en utilisant une procédure récursive qui utilise la division par deux et les opérations de base en évitant toutes les opérations de l'arithmétique des nombres réels flottants.
\begin{pmatrix}A'\\B'\\C'\\D'\end{pmatrix}=\begin{pmatrix}1&0&0&0\\{1\over 2}&{1\over 2}&0&0\\{1\over 4}&{2\over 4}&{1\over 4}&0\\{1\over 8}&{3\over 8}&{3\over 8}&{1\over 8}\end{pmatrix}\cdot\begin{pmatrix}A\\B\\C\\D\end{pmatrix}
ou
D\leftarrow (C+D)/2,
C\leftarrow (B+C)/2, D\leftarrow (C+D)/2,
B\leftarrow (A+B)/2, C\leftarrow (B+C)/2, D\leftarrow(C+D)/2

Plus précisément, on peut décomposer la courbe P(t) en deux courbes PL et PR dont les points de contrôles sont respectivement (L1, L2,L3,L4) et (R1, R2,R3,R4) avec

\begin{pmatrix}L_1'\\L_2'\\L_3'\\L_4'\end{pmatrix}=\begin{pmatrix}1&0&0&0\\{1\over 2}&{1\over 2}&0&0\\{1\over 4}&{2\over 4}&{1\over 4}&0\\{1\over 8}&{3\over 8}&{3\over 8}&{1\over 8}\end{pmatrix}\cdot\begin{pmatrix}A\\B\\C\\D\end{pmatrix} et \begin{pmatrix}R_1'\\R_2'\\R_3'\\R_4'\end{pmatrix}=\begin{pmatrix} {1\over 8}&{3\over 8}&{3\over 8}&{1\over 8}\\ 0&{1\over 4}&{2\over 4}&{1\over 4}\\ 0&0&{1\over 2}&{1\over 2}\\ 0&0&0&1 \end{pmatrix}\cdot\begin{pmatrix}A\\B\\C\\D\end{pmatrix}

Image:Bezier_rec.png

Lors de cet appel récursif pour tracer P(t), étant donné que la courbe de Bézier passe par le premier et le dernier point de contrôle, la position des extrémités de chaque morceau (L1, L4=R1 et R4) est connue. Lorsque l'on implémente un tel tracé, le critère d'arrêt de la récurrence peut être lié à la distance entre la sous-courbe à tracer et le segment [L1,L4] par exemple.

Le calcul d'un point d'une courbe de Bézier peut également s'effectuer en utilisant la méthode de Horner en calculant préalablement les coefficients vectoriels \mathbf{a_i} du polynôme:

\mathbf{a_i}=\begin{pmatrix}m\\i\end{pmatrix}\sum_{j=0}^{i} (-1)^{i-j} \begin{pmatrix}i\\j\end{pmatrix} \mathbf{P_j} \qquad \mbox{pour} \qquad  i=0...m

Exemples

Courbe de Bézier linéaire (de degré 1)

Les points de contrôle P0 et P1 définissent la courbe de Bézier donnée par l'équation :

\mathbf{B}(t)=(1-t)\mathbf{P}_0 + t\mathbf{P}_1 \mbox{ , } t \in [0,1].

Il s'agit donc du segment [P0, P1].

Courbe de Bézier quadratique (de degré 2)

Une courbe de Bézier quadratique est la courbe B(t) définie par les points de contrôle P0, P1 et P2.

\mathbf{B}(t) = (1 - t)^{2}\mathbf{P_0} + 2t(1 - t)\mathbf{P_1} + t^{2}\mathbf{P_2} \mbox{ , } t \in [0,1].
Courbe de Bézier cubique (de degré 3)

Ce sont les courbes de Bézier les plus utilisées (car elles permettent d'assurer la continuité en tangence et en courbure de deux courbes raccordées).

Une courbe de Bézier cubique est la courbe B(t) définie par les points de contrôle P0, P1, P2 et P3. Sa forme paramétrique est :

\mathbf{B}(t)=\mathbf{P_0}(1-t)^3+3\mathbf{P_1}t(1-t)^2+3\mathbf{P_2}t^2(1-t)+\mathbf{P_3}t^3 \mbox{ , } t \in [0,1].
Courbe de Bézier de degré supérieur à 3

Elles sont rarement utilisées. On préfère se ramener à l'utilisation de courbes cubiques que l'on raccorde. Pour cela, il faut et il suffit que le dernier point d'une courbe soit le premier d'une autre. On obtient ainsi une courbe continue.

Par exemple, pour une courbe définie par les points A, B, C, D, E, F et G, on utilise les courbes cubiques définies par A, B, C, et D, et par D, E, F, et G et la continuité est ainsi assurée. Pour avoir une courbe C1 en D, il faut que [C, D] = [D, E], et si en plus on veut qu'elle soit C2 en D, alors [B, D] = [D, F], et de même pour les dérivées successives.

Applications

Synthèse d'images
  • Les courbes de Bézier composent l'outil de la base du dessin vectoriel qui repose sur la transcription mathématique des objets.
  • Les courbes de Bézier cubiques, les plus utilisées, se retrouvent en graphisme et dans de multiples systèmes de synthèse d'images, tels que PostScript, Metafont et The GIMP, pour dessiner des courbes " lisses " joignant des points ou des polygones de Bézier.
Rendus de fontes
  • Les textes sont également définis par des courbes de Bézier dans le cadre des fonctions de PAO comme la mise en page complexe, la gestion de bloc de texte, les habillages.
  • Les fontes TrueType utilisent des courbes de Bézier quadratiques plus simples.

Courbe de Bézier rationnelle

Pour décrire très exactement des courbes comme les cercles (bien qu'en pratique les approximations par les courbes de Bézier soient suffisantes), il faut des degrés de liberté supplémentaires.

L'idée est d'ajouter des poids aux points de contrôle (ce sont les ωi). Le dénominateur n'est là que pour normaliser la somme des poids supplémentaires, afin que la courbe soit correctement définie.

Forme générale d'une courbe de Bézier rationnelle :

\mathbf{B}(t) = \frac{\sum_{i=0}^n b_{i,n}(t) \omega_i \mathbf{P}_{i} } {\sum_{i=0}^n b_{i,n}(t) w_i }
Page générée en 0.918 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise