Fermer Bézier Page 2


Théorie des Courbes de Bézier


SPlines et B-Splines

Une Spline de type régulier est une ligne courbe passant par 3 points. Il s'agit d'une parablole. Trois points suffisent car par 3 points (A, B, C) il ne passe qu'une parabole. La fonction f(x) ci dessous est une d'équation paramétrique du decond degré (degré 2) représentant une parabole, où t est le paramètre (figure 1)

 

Figure 1

Figure 2

 

Figure 3

Les Splines sont très pratiques pour tracer des lignes arrondies passant par 2 points ( voir figures 2 et 3). En cliquant sur les points ou sur la courbe on peut les déformer en consevant une allure arrondie (lissée). Mais les Splines sont limitées dans leurs possibilités:
- Un segment ne peut avoir une courbure supérieure à 90°
- Elles ne peuvent présenter de point d'inflexion, comme par exemple une sinusoïde.
- Nous n'avons pas le contrôle pour agir sur l'intensité du lissage de la courbe.

En conséquence, on utilise plutôt des B-Splines, qui sont des courbes de Bézier. Elles n'ont pas ces inconvénients. Pour obtenir plus de possibilités, on passe donc naturellement au degré supérieur (courbes de degré 3). Ce sont donc des cubiques que les américains nomment B-Splines.

Interpolation linéaire

L'interpolation linéaire consite à calculer un point intermédiaire entre deux points donnés, en fonction d'un coefficient réel. La figure ci-dessous montre le point c intermédiaire calculé entre a et b avec un coefficient de 0,25. Avec un coefficient de 0,5 le point c serait au milieu du segment (a, b).

 

Construction de de Casteljau

Les points P0 et P3 sont les extrémités de la courbe de Bézier. P1 et P2 sont les points de contrôle. Leur position angulaire et leur éloignement(poids) par rapport à P0 et P3 déterminent l'apparence de la courbe.
Pour dessiner la courbe de Bézier, on interpole linéairement en fonction du paramètre t qui varie de 0,0 à 1,0. On calcule les points a1 du segment (P0 P1), a2 du segment (P1 P2), et a3 du segment (P2 P3) . Puis, avec le même paramètre, on interpole linéairement b1 du segment (a1 a2) et b2 du segment (a2,a3). Finalement, on interpole le point c du segment (b1 b2), qui est un des points de la courbe.
On peut remarquer que b1 b2 est la tangente en c à la courbe de Bézier.

Exemples de construction de de Casteljau pour 4 points P0 P1 P2 P3 , avec t = 0.5 et t = 0.25

Le programme de démonstration Pcastel.exe montre la construction de de Casteljau. Cochez la case Construction de de Casteljau, cliquez sur le curseur de règlage, et faites le varier. Les touches flèchées permettent une variation plus régulière.  

Equations de Bézier

Les équations de Bézier utilisent 4 points: deux points de la courbe P0 et P3 et deux points de contrôle P1 ("à droite" de P0) et P2 ("à gauche" de P3).

Les équations de Bézier sont des équations paramétriques (t), symétriques en x et y, et d'ordre 3 (troisième degré).

Bx(t) = (1-t)^3*P1x + 3*(1-t)^2*t*PC1x + 3*(1-t)*t^2 PC2x + t^3*P2x

By(t) = (1-t)^3*P1y + 3*(1-t)^2*t*PC1y + 3*(1-t)*t^2 PC2y + t^3*P2y

Le paramètre t (qui varie entre 0.0 à 1.0) sert à découper l'intervalle P0, P3 selon la précision voulue pour le résultat, par exemple on peut prendre 16 intervalles, ou calculer cet intervalle en fonction de la dimension de la portion de courbe à dessiner.

Si t = 0 on a comme résultat B.x = P0.x et By= P0.y
Si t = 1 on a comme résultat B.x = P3.x et By= P3.y;

Polybezier

Jusqu'ici, nous avons utilisé une courbe simple, avec un point de départ et un point d'arrivée. Nous pouvons maintenant traiter les courbes de Bézier passant par plusieurs points, que nous nommerons Polybézier pour reprendre le vocabulaire Windows. Si nous avons NB1 points par lesquels la courbe doit passer, il nous faudra NB2 = NB1 x 3 + 1 points au total, puisqu'entre chaque point P de la courbe nous construirons 2 points de contrôle.
Les points de la courbe et les points de contrôle seront stockés dans un tableau BB de Tpoints

BB := array[0..NB] of Tpoints;

On peut aussi dire qu'un point P de la courbe, non situé à une extrémité, sera précédé dans le tableau de son point de contrôle "à gauche" , et suvi de son point de contrôle "à droite" .