Beruflich Dokumente
Kultur Dokumente
Chapitre 2
Contenu du chapitre
1 Courbes de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.1 Présentations . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.3 Dérivées des courbes de Bézier . . . . . . . . . . . . . . . 77
1.4 Expression matricielle des courbes de Bézier . . . . . . . . 78
2 Courbes spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2 Dérivée des courbes de spline . . . . . . . . . . . . . . . . 82
2.3 Problème de la continuité . . . . . . . . . . . . . . . . . . . 82
2.3.1 Raccordement C 1 . . . . . . . . . . . . . . . . . 82
2.3.2 Raccordement C 2 . . . . . . . . . . . . . . . . . 83
2.4 Courbes B-spline . . . . . . . . . . . . . . . . . . . . . . . 84
3 Interpolation par des B-splines . . . . . . . . . . . . . . . . . . . 86
3.1 Cas des B-splines C1 . . . . . . . . . . . . . . . . . . . . . 87
3.2 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4 Surfaces de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.1 Liens entre interpolation bilinéaire et Bézier . . . . . . . . . 90
4.2 Approche intuitive des surfaces de Bézier . . . . . . . . . . 91
4.2.1 Construction par l’algorithme de de Casteljau . . 91
4.2.2 L’approche “produit tensoriel” . . . . . . . . . . 92
4.3 Définition des surfaces de Bézier . . . . . . . . . . . . . . . 93
4.4 Dérivées et normale . . . . . . . . . . . . . . . . . . . . . 96
4.5 Continuité de surfaces composées . . . . . . . . . . . . . . 96
5 Surfaces de révolution . . . . . . . . . . . . . . . . . . . . . . . . 97
1 Courbes de Bézier
Une courbe de Bézier est un segment de courbe polynômiale de degré n définie à
partir d’un ensemble de n + 1 points {Pi }i=0...n dit ”de contrôle” qui interpole les deux
points extrêmes (P0 et Pn ) et qui approxime les autres. Nous donnons tout d’abord une
idée du mode de construction de ces polynômes avant d’en donner une définition plus
générale.
1.1 Présentations
Considérons 3 points P0 , P1 et P2 de R3 . La courbe de Bézier B0,1,2 (t) définie à
partir de ces points se construit à partir de deux polynômes en faisant varier t entre 0
et 1. :
B0,1 (t) (resp. B1,2 (t)) est l’interpolation linéaire entre P0 et P1 (resp. entre P1 et
P2 ). La courbe de Bézier B0,1,2 (t) est l’interpolation linéaire entre B0,1 (t) et B1,2 (t).
A noter que le t utilisé varie en même temps dans les trois équations. Graphiquement,
elle se traduit comme indiqué sur la figure 2.1. Les points B 0,1 (t), B1,2 (t) et B0,1,2 (t)
y sont représentés pour t = 23 . Ce procédé de construction est connu sous le nom
d’algorithme de de Casteljau.
qui est l’équation d’un segment de parabole pour t ∈ [0, 1]. Cette équation peut
également s’interpréter comme une somme pondérée des points P 0 , P1 et P2 dépendante
P1
B0,1(t)
B0,1,2(t) B1,2(t)
P0 P2
F IG . 2.1 – Construction d’une courbe de Bézier à 3 points. Les valeurs des polynômes B 0,1 (t), B0,1,2 (t)
et B1,2 (t) sont exprimés pour t = 23 .
(1-t)2 t2
1
2t(1-t)
0 t
0 1
On peut remarquer que ces polynômes ont la particularité d’être construits de façon
similaire à la binomiale1. Ils permettent d’obtenir une forme analytique directe des
courbes de Bézier.
n n
n i
Bn (t) = bni (t)Pi = t (1 − t)n−i Pi
i=0 i=0
i
On notera que cette courbe est définie même si t n’appartient pas à [0, 1], mais elle
n’est pas contrôlée à l’extérieur de cet intervalle. Plusieurs exemples de courbes sont
présentés figure 2.3.
L’algorithme de construction de de Casteljau ci-dessus se généralise facilement à
un nombre de points quelconques comme le montre l’exemple suivant. Le polygone
engendré par l’ensemble des points {Pi }i=0..n est appelé polygone de Bézier (ou poly-
gone de contrôle).
Exemple
2 Prenons
les 5 points suivants
:
P 0 = 0 −1 , P 2 = 2 −3 , P3 =
5 0 , P4 = 4 3 et P5 = 0 4 . En utilisant l’algorithme de de Casteljau,
on obtient la figure 2.4.
1.2 Propriétés
Les courbes de Bézier ont les propriétés suivantes :
1. Points extrêmes et points de contrôles.
Comme nous le signalions déjà, une courbe de Bézier commence en P0 et se
termine en Pn (i.e. Bn (0) = P0 et Bn (1) = Pn ). Cette propriété associée au
rôle des autres points de contrôle permet de créer aisément de façon interactive
(i.e. sur un ordinateur) une courbe de Bézier en déplaçant ceux-ci. On peut noter
sur les exemples figure 2.3, que le polygone de contrôle définit en l’exagérant le
comportement de la courbe.
1
Les polynômes de Bernstein ont la particularité de satisfaire l’équation de récurrence suivante :
⎧ 0
⎨ b0 (t) = 0
bn (t) = 0 si j ∈/ {0, . . . , n}
⎩ in
bi (t) = (1 − t)bn−1 n−1
i−1 (t) + tbi−1 (t)
n n
et de vérifier la propriété i=0 bi (t) = 1.
Donc, effectuer une transformation affine d’une courbe de Bézier Bn (t) est
équivalent à effectuer une transformation de ses points de contrôle {P i }i=0...n
puis à calculer la courbe de Bézier à partir de ces points.
3. Enveloppe convexe
2
Démonstration évidente par linéarité de la transformation affine et par propriété des polynômes de
Bernstein. On peut également donner une démonstration géométrique en notant que l’algorithme de de
Casteljau construit la courbe de Bézier par une succession de barycentre et que ceux-ci sont conservés
par transformation affine.
P2
P3
P1
P4
P0
1
F IG . 2.4 – Courbe de Bézier : construction pour 5 points et t = 3.
Une courbe de Bézier est contenue dans l’enveloppe convexe de ses points de
contrôle (voir figure 2.5).
Ceci est dû au fait que les points de la courbe de Bézier sont obtenus par une
succession de combinaisons convexes à partir des points de contrôle (exemple
pour la première étape, B0,1 (t) = (1 − t)P0 + tP1 avec t ∈ [0, 1], donc B0,1 (t)
se trouve entre P0 et P1 ). Cette propriété a deux conséquences importantes :
– si les points de contrôle sont coplanaires, alors la courbe de Bézier correspon-
dante vit sur le plan défini par ses points de contrôle.
Proposition 2.1 Soit Bn (t) une courbe de Bézier à n + 1 points {Pi }i=0...n . Alors,
avec ∆k Pi = ∆k−1 Pi+1 − ∆k−1 Pi = kj=0 kj (−1)k−j Pi+j .
on obtient : ⎡ ⎤ ⎡ ⎤
bn0 (t) 1
⎢ bn (t) ⎥ ⎢ t ⎥
⎢ 1 ⎥
⎢ .. ⎥ = Mn . ⎢ ⎥
⎣ t2 ⎦
⎣ . ⎦
bnn (t) t3
n
i
où Mn est la matrice dont les coefficients mij sont définis par mij = (−1)j−i j j
.
Cette expression est intéressante car les modèles de courbes paramétriques peuvent
s’écrirent sous forme matricielle, ce qui permet d’en avoir une approche générique
lorsqu’il s’agit de les évaluer.
2 Courbes spline
Les courbes de Bézier sont des outils puissants mais dont le principal inconvénient
est que le degré des courbes augmente avec le nombre de points de contrôle ; leur
coût de calcul devient donc prohibitif dès que le nombre de points de contrôle devient
important (on ne dépasse pas 10 en pratique). L’idée des courbes splines est qu’une
courbe complexe peut être obtenue en construisant une fonction par morceau à partir
d’un ensemble de courbes simples (i.e. de degré peu élevé). Un intérêt immédiat de
ce mode de construction est que le changement de la position d’un point de contrôles
n’aura plus qu’un impact limité sur la fonction obtenue. Cette localité se paye par la
nécessité de gérer les problèmes de continuité (jonction entre morceaux).
2.1 Présentation
Nous donnons tout de suite une définition ainsi que les notations qui seront utilisées
dans cette partie.
Définition Soit u0 < u1 < . . . < uL une suite de réels ordonnés ; soit Ui l’intervalle
défini par Ui = [ui−1 , ui]. Soit Si (t) une courbe de Bézier (t ∈ [0, 1]).
Alors la courbe spline S(u) définie sur [u0 , uL ] à partir des courbes de Bézier
L
u − ui
S(u) = Si ( ).IUi (u)
i=1
ui+1 − ui
⎧
⎪
⎨ S1 ( uu−u 0
1 −u0
) si u ∈ U1
.. ..
= . .
⎪
⎩ S ( u−uL−1 ) si u ∈ U
L uL −uL−1 L
Pour reprendre la définition, la courbe S(u) est définie sur l’intervalle [u0 , uL].
Cet intervalle est subdivisé en un ensemble d’intervalles [u i−1, ui ]. Sur l’intervalle
[ui−1 , ui], la spline S(u) est égale à la courbe de Bézier Si (t) (avec une variable t
différente de u car une courbe de Bézier n’est définie que si 0 ≤ t ≤ 1). On effectue
donc le changement de paramètre t = uu−u i−1
i −ui−1
de façon à ce que S(ui−1 ) = Si (0)
et que S(ui) = Si (1) (ce changement de paramètre est l’application affine qui trans-
forme l’intervalle [ui−1 , ui] en l’intervalle [0, 1] et ne change en rien chaque courbe de
Bézier).
Par la suite, on appellera ui un noeud et S(ui ) = Si (1) = Si+1 (0) un point de
jonction, et l’union des polygones de Bézier des S i le polygone de Bézier par morceau.
On notera δi = ui − ui−1 la largeur de l’intervalle Ui .
On voit que cette construction pose le problème de la jonction des différents mor-
ceaux de la spline, car, a priori, rien n’assure la continuité en chaque point de jonction
si les courbes de Bézier sont quelconques. Une première condition évidente pour que
la spline soit continue est que S i (1) = Si+1 (0) ; ce qui signifie géométriquement que
le premier point de contrôle de Si+1 et le dernier point de contrôle de Si doivent être
confondus. Ceci implique que les polygones de Bézier de chaque Si forment un seul
polygone composé par morceau. On note {Pj } l’ensemble des points de contrôle de la
spline.
Ceci assure une continuité d’ordre 0. Nous allons étudier les conditions qui doivent
être imposées aux courbes de Bézier qui composent la spline afin d’obtenir certains
niveaux de continuités aux points de jonction. Mais commençons par les expressions
des dérivées des fonctions splines.
Proposition 2.2 Soit S(u) une courbe spline définie comme ci-dessus. Alors, ses déri-
vées sont :
– Pour la dérivée d’ordre 1 : soit u ∈ Ui ,
dS(u) dSi (t) dt 1 dSi(t)
= =
du dt du δi dt
– Pour la dérivée d’ordre 2 : soit u ∈ Ui ,
2
d2 S(u) d2 Si (t) dt 1 d2 Si (t)
= =
d2 u d2 t du δi2 d2 t
Le facteur δ1i provient du changement de paramètre t = uu−u i−1
i −ui−1
, qui conduit à
dt 1
du
= δi .
On remarquera qu’en chaque point de jonction ui , S(u) possède une dérivée à
gauche dépendant de Si et une dérivée à droite dépendant de Si+1 . Par exemple, pour
la première dérivée, on a :
" dS(u− )
du
i
= δ1i dSdti (1)
dS(u+
i ) 1 dSi+1 (0)
du
= δi+1 dt
Les autres points de la spline sont C ∞ car les Si sont tous des polynômes.
2.3.1 Raccordement C 1
Pour la spline S(u), la continuité C 1 se traduit en chaque noeud ui par3 (cf prop.
2.2) :
1 dSi 1 dSi+1
(1) = (0) (2.1)
δi dt δi+1 dt
3
On rappelle qu’une courbe f (x) est continue en a si f (a − ) = f (a+ ) où f (a− ) (resp. f (a+ ))
est la limite de f en tendant vers a par valeurs inférieures (resp. supérieures). On rappelle également
qu’une courbe f (x) est C 1 en a si sa dérivée f (x) est continue en a.
2.3.2 Raccordement C 2
Sachant que toute courbe C 2 est C 1 , la condition trouvée dans la section précédente
est donc nécessaire. Pour la continuité C 2 , elle se traduit en chaque noeud ui par (cf
4
La notation Pj est justifié par le fait que le nombre de noeuds (indice i) n’est pas le même que
le nombre de points de contrôle. Il y a une courbe de Bézier entre deux points de jonction, et chaque
courbe de Bézier possède plusieurs points de contrôle. Une notation plus correcte aurait été j(i) pour
marquer la dépendance entre les deux indices.
5
Cela peut être interprété physiquement comme la correction sur la vitesse qu’un point parcourant
la courbe S doit effectuer pour progresser à la même vitesse sur S i (t) et Si+1 (t).
prop. 2.2) :
1 d 2 Si 1 d2 Si+1
(1) = (0)
δi2 d2 t 2
δi+1 d2 t
qui assure que la dérivée seconde de S est continue. En notant comme ci-dessus P j
le point de contrôle de S associé au noeud ui , et en utilisant les propriétés de la dérivée
seconde d’une courbe de Bézier, on a (voir exemple 3 ) :
" 2
d Si
d2 t
(1) = n. (n − 1) . (∆Pj−1 − ∆Pj−2 )
d2 Si+1
d2 t
(0) = n. (n − 1) . (∆Pj+1 − ∆Pj )
Proposition 2.3 (courbe B-spline C 1 ) Soit {Qi }i=1..L un ensemble de points de con-
trôle, soit {ui }i=1..L une liste des noeuds. Alors une courbe B-spline C 1 peut se construi-
re comme composition de courbes de Bézier à 3 points {P2i−1 , P2i , P2i+1 }. Les points
{Pi }i=1..2L−3 sont déterminés comme suit :
P2i = Qi+1
P2i+1 = δi +δ1i+1 [δi+1 Qi+1 + δi Qi+2 ]
d’où :
1
Pj = [δi+1 Bi+1 + δi Bi+2 ]
δi + δi+1
Proposition 2.4 (courbe B-spline C 2 ) Soit {Qi }i=1..L un ensemble de points de con-
trôle, soit {ui }i=1..L une liste de noeuds. Alors une courbe B-spline C 2 peut se construi-
re comme composition de courbes de Bézier à 4 points {P3i , P3i+1 , P3i+1 , P3i+2 }. Les
points {Pi }i=1..2L−3 sont déterminés comme suit :
⎧
⎨ P3i = δi−11+δi [δi P3i−1 + δi−1 P3i+1 ] pour les points de jonction
P = 1 [(δ + δi ) Qi−1 + δi−2 Qi ]
⎩ 3i−1 1δ i−1
P3i−2 = δ [(δi−1 + δi ) Qi−1 + δi−2 Qi ]
pour u0 ≤ u ≤ un et où Ni,k est la base des fonctions B-spline définies récursivement
par :
⎧
⎨ N (u) = 1 si ui ≤ u < ui+1
i,1
0 sinon
⎩ N (u) = u−ui N (u) + ui+k −u N (u)
i,k ui+k−1 −ui i,k−1 ui+k −ui+1 i+1,k−1
Problème 2.6 Soit {Ai }i=0..p un ensemble de p + 1 points, sa liste de noeuds associ és
{ui }i=0..p , et leurs vecteurs tangents {Vi }i=0..p . Trouver la spline S(u) de continuité
dSi−1 dSi
(1) = 3. (A3i − A3i−1 ) et (1) = 3. (A3i+1 − A3i )
dt dt
Ceci implique que :
1
δi−1
.3. (A3i − A3i−1 ) = Vi
1
δi
.3. (P3i+1 − P3i ) = Vi
A = Nk .Q
avec
A = A1 A2 . . . An
Q = Q1 Q2 . . . Qp
⎡ ⎤
N1,k+1 (u1 ) ... ... Np,k+1(u1 )
⎢ .. .. .. ⎥
⎢ . . . ⎥
Nk = ⎢ . .. ⎥
⎣ .. ..
. . ⎦
N1,k+1 (un ) ... ... Np,k+1(un )
A = Nk−1 .Q
– Si p < n (ce qui est généralement le cas, on donne plus de points que nécessaire),
alors la matrice N n’est plus triangulaire. On utilise alors la technique du pseudo-
inverse :
A = Nk .B ⇒ Nk t .Q = Nk t .N.Q
La matrice Nk t .Nk est une matrice carrée, d’où :
Q = ( Nk t .N)−1 . Nk t .A
Dans ce cas, la solution n’assure pas que la courbe obtenue passe exactement
par les points Ai .
Un exemple dans ces deux cas est présenté figure 2.13.
En pratique, on connait seulement les points A i . La position des noeuds peut être
estimée en utilisant la longueur de la corde reliant les A i . En fixant u1 = 0 et un = 1,
on prend pour i ≥ 2 : i
j=2 Aj−1 Aj
ui = n
j=2 Aj−1 Aj
4 Surfaces de Bézier
4.1 Liens entre interpolation bilinéaire et Bézier
De même qu’une courbe de Bézier se construit à partir de successions d’interpo-
lations linéaires de Bézier, une surface de Bézier se construit à partir de successions
d’interpolations bilinéaires.
La surface est la surface de Bézier engendrée par les 4 points P00 , P10 , P01 et P11
(voir figure 2.14.
F IG . 2.14 – Une surface des Bézier à quatre points coı̈ncide avec l’interpolation bilinéaire.
B(u, v) = Bu (v)
les points de contrôle suivent des trajectoires définies par d’autres courbes de Bézier.
n
p
B(u, v) = Pij .bni (u).bpj (v) (2.4)
i=0 j=0
Le figure 2.17 donne le lien entre les notations ci-dessus et une surface de Bézier.
Quelques exemples de surfaces de Bézier sont ensuite présentés à la figure 2.18.
Les propriétés des surfaces de Bézier découlent directement de celles des courbes
de Bézier :
– Une surface de Bézier est invariante par transformation affine
La surface est construite (de Casteljau) par compositions successives d’interpo-
lations bilinéaires et linéaires ; comme ces opérations sont invariantes par trans-
formation affine, il en va de même pour leur composition.
– Une surface de Bézier est contenue dans l’enveloppe convexe formée par ses
points de contrôle.
On observe que les polynômes de Bernstein ont pour propriétés :
n p n p
i=0 j=0 bi (u).bj (v) = 1
0 ≤ bni (v) ≤ 1 pour tout 0 ≤ i ≤ n et pour tout n
La première propriété est une conséquence directe de ni=0 bni (u) = 1 (on fac-
torise).
Par conséquent, l’équation 2.4 nous montre qu’une surface de Bézier est une
combinaison barycentrique des points de contrôles P ij avec des poids compris
entre 0 et 1. Ceci implique que le barycentre obtenu est nécessairement “entre”
les Pij et donc que ceux-ci délimitent la zone où ce barycentre peut se situer.
– Les bords d’une surface de Bézier sont des courbes de Bézier dont les extrémités
passent par les points P00 , Pn0 , P0p et Pnp .
Cette propriété est évidente si l’on a lu la section 4.2.2.
– Le déplacement d’un point de contrôle entraı̂ne une déformation de toute la sur-
face.
Un exemple est présenté à la figure 2.19.
F IG . 2.19 – Effet du déplacement d’un point de contrôle sur une surface de Bézier.
∂B n p−1
(u, v) = p (Pi,j+1 − Pi,j ).bni (u).bp−1
j (v)
∂u i=0 j=0
∂B n−1 p
(u, v) = n (Pi+1,j − Pi,j ).bn−1
i (u).bpj (v)
∂v i=0 j=0
les courbes de Bézier pour définir les B-splines, on peut utiliser des surfaces de Bézier
de degré fixé pour engendrer des surfaces complexes en conservant des degrés raison-
nables pour les polynômes.
On peut montrer qu’une autre condition pour la condition C 1 s’exprime dans la
coplanarité des arêtes sur le bord de la surface (voir figure 2.20).
5 Surfaces de révolution
Les surfaces de révolution sont un moyen simple d’engendrer des surfaces à partir
de polygone ou de courbes planaires. On considère une courbe P (t) défini par :
x(t)
P (t) =
y(t)
Alors la surface de révolution obtenue par rotation de cette courbe autour de l’axe des
x a pour équation (voir aussi figure 2.21) :
⎡ ⎤
x(t)
S(t, φ) = ⎣ y(t). cos φ ⎦
y(t). sin φ
mogènes : ⎡ ⎤ ⎡ ⎤
1 0 0 0 x(t)
⎢ 0 cos φ 0 0 ⎥ ⎢ y(t) ⎥
S(t, φ) = ⎢
⎣ 0
⎥.⎢ ⎥
sin φ 0 0 ⎦ ⎣ 0 ⎦
0 0 0 1 1
Nous donnons quelques exemples sur les figures 2.23, 2.22 et 2.24.