Académique Documents
Professionnel Documents
Culture Documents
Mémoire de MAGISTER
en Mathématiques
Option: Asymptotique des équations différentielles et calcul formel
Présenté par
BENSID YAZID
Thème :
Bensid Yazid
24 mai 2011
2
Introduction
Qu’est ce que la modélisation géométrique ?
5
6 TABLE DES MATIÈRES
5 Courbes B-splines 63
5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2 Relation entre le degré de la courbe ”d”, le nombre de noeuds
”m+1” et le nombre de points de contrôle ”n+1” . . . . . . . 64
5.3 Relation entre les courbes B-splines et celles de Bézier . . . . . 65
5.4 Propriétés des courbes B-splines . . . . . . . . . . . . . . . . . 66
5.4.1 Contrôle local . . . . . . . . . . . . . . . . . . . . . . . 66
5.4.2 Modification locale . . . . . . . . . . . . . . . . . . . . 67
5.4.3 Enveloppe convexe . . . . . . . . . . . . . . . . . . . . 67
5.4.4 Continuité . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.4.5 Invariance par transformation affine . . . . . . . . . . . 68
5.4.6 Interpolation des extrémités . . . . . . . . . . . . . . . 68
5.5 L’algorithme de De Boor . . . . . . . . . . . . . . . . . . . . . 68
5.5.1 Présentation de l’algorithme . . . . . . . . . . . . . . . 69
5.5.2 Preuve de l’algorithme . . . . . . . . . . . . . . . . . . 71
5.6 Dérivation des courbes B-splines . . . . . . . . . . . . . . . . . 72
5.7 Insertion de noeuds . . . . . . . . . . . . . . . . . . . . . . . . 74
TABLE DES MATIÈRES 7
1.1 Définition
Les polynômes de Bernstein de degré n sont définis sur [0, 1] par[3] :
n−i
n
i ti (1 − t) si 0 ≤ i ≤ n
Bi,n (t) = (1.1)
0 ailleurs
n n!
avec : =
i i!(n − i)!
exemple 1.1
Dans le cas cubique (n = 3) les polynômes de Bernstein sont données par :
On voit, entre autre qu’ils sont tous positifs pour t ∈ [0, 1] et que leur somme
est égale à 1.
9
10 CHAPITRE 1. LES POLYNÔMES DE BERNSTEIN
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1
t
1.2.1 Récurrence :
Preuve :
n n!
=
i i!(n − i)!
(n − i + i)(n − 1)!
=
i!(n − i)!
(n − i)(n − 1)! + i(n − 1)!
=
i!(n − i)!
1.2. PROPRIÉTÉS DES POLYNÔMES DE BERNSTEIN 11
Preuve :
1 = [(1 − t) + t]n
n
X n j
= t (1 − t)n−j
j=0
j
n
X
= Bj,n (t)
j=0
1.2.3 Positivité
Les polynômes de Bernstein sont non négatifs sur [0, 1] :
∀t ∈ [0, 1], Bi,n (t) ≥ 0
Preuve :
ti (1 − t)n−i si 0 ≤ i ≤ n
n
i
Bi,n (t) =
0 ailleurs
12 CHAPITRE 1. LES POLYNÔMES DE BERNSTEIN
n
i
> 0 et pour t ∈ [0, 1], t ≥ 0 et 1 − t ≥ 0 ⇒ ti ≥ 0 et (1 − t)n−i ≥ 0
Donc ∀t ∈ [0, 1], Bi,n (t) ≥ 0
1.2.4 Symmétrie
Si 0 ≤ i ≤ n Alors Bi,n (1 − t) = Bn−i,n (t)
Preuve :
n i
∀i ∈ {0, ..., n}, Bi,n (u) = u (1 − u)n−i
i
n
⇒ Bi,n (1 − t) = (1 − t)i [1 − (1 − t)]n−i
i
n n−i
= t (1 − t)i
i
Or
n n!
=
i i!(n − i)!
n!
=
(n − i)![n − (n − i)]!
n
=
n−i
D’où
n
Bi,n (1 − t) = tn−i (1 − t)i
n−i
= Bn−i,n (t)
2.
(2) i(i − 1) − 2i(n − 1)t + n(n − 1)t2
Bi,n (t) = Bi,n (t) (1.3)
t2 (1 − t)2
3.
′
Bi,n (t) = n[Bi−1,n−1 (t) − Bi,n−1 (t)] (1.4)
Preuve :
On commence par démontrer la relation (1.2)
n i
Bi,n (t) = t (1 − t)n−i
i
h
′ n i−1 n−i i n−i−1
i
⇒ Bi,n (t) = it (1 − t) − t (n − i)(1 − t)
i
n i n−i i n−i
= t (1 − t) −
i t 1−t
i n−i n i
= − t (1 − t)n−i
t 1−t i
(1 − t)i − t(n − i)
= Bi,n (t)
t(1 − t)
i − nt
= Bi,n (t)
t(1 − t)
On démontre la relation (1.3) :
2 ′
Bi,n (t) = [Bi,n (t)]′
′
i − nt
= Bi,n (t)
t(1 − t)
−nt(1 − t) − (i − nt)(1 − 2t) i − nt ′
= Bi,n (t) + B (t)
2
t (1 − t) 2 t(1 − t) i,n
−nt(1 − t) − (i − nt)(1 − 2t) (i − nt)2
= B i,n (t) + Bi,n (t)
t2 (1 − t)2 t2 (1 − t)2
−nt(1 − t) − (i − nt)(1 − 2t) + (i − nt)2
= Bi,n (t)
t2 (1 − t)2
−nt + nt2 + 2it − i − 2nt2 + nt + i2 − 2int + n2 t2
= Bi,n (t)
t2 (1 − t)2
(i2 − i) + (2it − 2int) + (n2 t2 − nt2 )
= Bi,n (t)
t2 (1 − t)2
i(i − 1) − 2i(n − 1)t + n(n − 1)t2
= Bi,n (t)
t2 (1 − t)2
14 CHAPITRE 1. LES POLYNÔMES DE BERNSTEIN
2.1 Introduction
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 (1910-
1999) qui les utilisa chez Renault pour concevoir des pièces d’automobile à
l’aide d’ordinateurs.
Dans ce chapitre, nous allons définir ce que sont les courbes de Bézier
[2],[1],[5],[8], décrire leurs principales propriétés et présenter un algorithme
très efficace pour traçer simplement ces courbes.
y = f (x)
15
16 CHAPITRE 2. LES COURBES DE BÉZIER
Il est très courant d’utiliser l’intervalle [0, 1] comme par exemple pour
paramétriser un segment [a, b] dans R2
l’équation paramétrique est donnée par :
avec :
xa xb
a= ;b =
ya yb
1. Elle permet une séparation des variables et un calcul direct des coor-
données d’un point.
2. Elle permet une plus grande liberté pour le contrôle de l’allure d’une
courbe.
3. les transformations peuvent être faites directement au niveau des équations
paramétriques.
4. Les courbes paramétrisées sont naturellement bornées quand le pa-
ramètre est dans un intervalle fermé.
2.3 Définition
Les courbes de Bézier de degré n sont définies pour t ∈ [0, 1] par :
n
X
n
b (t) = bi Bi,n (t)
i=0
où les bi sont des points de Rp appelés points de contrôle et Bi,n (t) les
polynômes de Bernstein.
Remarque 2
Si p = 2, alors bn (t) est dite courbe de Bézier plane.
Elle est dite spatiale dans le cas où p = 3. On se contentera d’étudier les
courbes de Bézier planes.
18 CHAPITRE 2. LES COURBES DE BÉZIER
représentation matricielle :
n
X
n
b (t) = bi Bi,n (t)
i=0
Bo,n (t)
= [bo , ..., bn ]
..
.
Bn,n (t)
1
m0,0 · · · m0,n t
.. ..
= [bo , ..., bn ]
. . t2
..
mn,0 · · · mn,n .
tn
= P MT
Avec :
j−i n j
mi,j = (−1)
j i
exemple 2.1
1. pour n = 1
b1 (t) = (1 − t)b0 + tb1 c’est l’équation paramétrique du segment [b0 , b1 ]
2. pour n = 2 (on parle de courbes quadratiques) on aura trois points de
contrôle : b0 , b1 , b2
3. pour n = 3 les courbes de Bézier sont dites cubiques. Ce sont les plus
utilisées en modélisation.
-1
-2
1 2 3 4 5 6
1.5
0.5
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3 3.5 4
Procédure :
1≤r≤n
bri (t) = (1 − t)bir−1 (t) + r−1
tbi+1 avec :
0≤i≤n−r
Remarque 3
L’algorithme de De Casteljau peut être visualisé comme un triangle, par
exemple pour le cas cubique :
b0 b1 b2 b3
b20 b21
b30
2.4. CONSTRUCTION GÉOMÉTRIQUE DES COURBES DE BÉZIER21
lemme 2.1
∀0 ≤ r ≤ n et ∀0 ≤ i ≤ n − r on a :
i+r
X
bri (t) = bj Bj−i,r (t)
j=i
Preuve :
On démontre le résultat par recurrence.
Pour r = 0,
i
X
bj Bj−i,0 (t) = bi B0,0 (t)
j=i
= bi
= b0i (t)
i+r−1
X
bir−1 (t) = bj Bj−i,r−1 (t)
j=i
avec : 0 ≤ r ≤ n et 0 ≤ i ≤ n − r
Ce qui implique :
i+r
X
r−1
bi+1 (t) = bj Bj−i−1,r−1 (t)
j=i+1
i+r−1
X i+r
X
= (1 − t) bj Bj−i,r−1 (t) + t bj Bj−i−1,r−1 (t)
j=i j=i+1
22 CHAPITRE 2. LES COURBES DE BÉZIER
i+r
X i+r
X
bri (t) = (1 − t) bj Bj−i,r−1 (t) + t bj Bj−i−1,r−1 (t)
j=i j=i
i+r
X
= bj [(1 − t)Bj−i,r−1 (t) + tBj−i−1,r−1 (t)]
j=i
i+r
X
= bj Bj−i,r (t)
j=i
i+r
X
bri (t) = bj Bj−i,r (t), ∀0 ≤ r ≤ n et : ∀0 ≤ i ≤ n − r
j=i
En particulier pour r = n et i = 0 :
n
X
bn0 (t) = bj Bj,n (t)
j=0
n
= b (t)
exemple 2.2
Soit b3 (t) une courbe de Bézier cubique définie par ses points de contrôle
b0 = (1, −2), b1 = (2, 1), b2 = (3, 1) et b3 = (4, −1) On cherche à connaitre la
valeur de b3 (0.5) représentant le point de la courbe de bézier pour t = 0.5 en
utilisant l’algorithme de De Casteljau.
1.5
0.5
-0.5
-1
-1.5
-2
1 1.5 2 2.5 3 3.5 4
Preuve :
La preuve se fait par récurrence sur r
Le résultat est évident pour r = 0
Supposons le résultat vrai jusqu’à l’ordre r et montrons le pour r + 1 :
24 CHAPITRE 2. LES COURBES DE BÉZIER
∆r+1 bi = ∆r bi+1 − ∆r bi
r r
X r r−j
X r
= (−1) bi+j+1 − (−1)r−j bi+j
j=0
j j=0
j
r−1 r
X r r−j
X r
= (−1) bi+j+1 + br+i+1 − (−1)r−j bi+j − (−1)r bi
j=0
j j=1
j
r r
X r r−j+1
X r
= (−1) bi+j + br+i+1 − (−1)r−j bi+j − (−1)r bi
j=1
j − 1 j=1
j
r
X r r−j+1 r r−j
= (−1) − (−1) bi+j + br+i+1 − (−1)r bi
j=1
j − 1 j
r
X r r−j+1 r r−j+1
= (−1) + (−1) bi+j + br+i+1 + (−1)r+1 bi
j=1
j − 1 j
r
X
r−j+1 r r
= (−1) + bi+j + br+i+1 + (−1)r+1 bi
j=1
j − 1 j
r r r+1
Comme + =
j−1 j j
alors :
r
r+1
X
r−j+1 r+1
∆ bi = (−1) bi+j + br+i+1 + (−1)r+1 bi
j=1
j
r+1
r−j+1 r + 1
X
= (−1) bi+j
j=0
j
Théorème 2.1
La dérivée première d’une courbe de Bézier de degré n est donnée par :
n−1
X
n ′
[b (t)] = ∆bi n Bi,n−1 (t)
i=0
Preuve :
" n
#′
X
[bn (t)]′ = bi Bi,n (t)
i=0
n
X
′
= bi Bi,n (t)
i=0
n
X
= bi n(Bi−1,n−1 (t) − Bi,n−1 (t)) (d’après 1.4 p.15)
i=0
Xn n
X
= nbi Bi−1,n−1 (t) − nbi Bi,n−1 (t)
i=0 i=0
n
X n−1
X
n ′
[b (t)] = nbi Bi−1,n−1 (t) − nbi Bi,n−1 (t)
i=1 i=0
n−1
X n−1
X
= nbi+1 Bi,n−1 (t) − nbi Bi,n−1 (t)
i=0 i=0
n−1
X
= n(bi+1 − bi )Bi,n−1 (t)
i=0
n−1
X
= n∆bi Bi,n−1 (t)
i=0
Corollaire 2.1
La dérivée r-ième d’une courbe de Bézier est donnée par :
n−r
dr n n! X r
b (t) = ∆ bi Bi,n−r (t) (2.2)
dtr (n − r)! i=0
Preuve :
La preuve se fait par récurrence sur r
26 CHAPITRE 2. LES COURBES DE BÉZIER
Pour r = 1 :
n−1
d n n! X
b (t) = ∆bi Bi,n−1 (t)
dt (n − 1)! i=0
n−1
X
= n ∆bi Bi,n−1 (t)
i=0
n−r n−r−1
!
dr+1 n n! X X
r+1
b (t) = ∆r bi Bi−1,n−r−1 (t) − ∆r bi Bi,n−r−1 (t)
dt (n − r − 1)! i=1 i=0
En réindexant, on obtient :
n−r−1 n−r−1
!
dr+1 n n! X
r
X
r
r+1
b (t) = ∆ bi+1 Bi,n−r−1 (t) − ∆ bi Bi,n−r−1 (t)
dt (n − r − 1)! i=0 i=0
n−(r+1)
n! X
= (∆r bi+1 − ∆r bi ) Bi,n−(r+1) (t)
[n − (r + 1)]! i=0
n−(r+1)
n! X
= ∆r+1 bi Bi,n−(r+1) (t)
[n − (r + 1)]! i=0
Donc, le résultat est vrai pour (r + 1)
2.6. DÉRIVATION D’UNE COURBE DE BÉZIER ET ALGORITHME DE DE CASTELJAU27
Corollaire 2.2
La dérivée r-ième d’une courbe de Bézier peut être exprimée en fonction des
points intermediaires générés par l’algorithme de De Casteljau comme suit :
dr n n!
r
b (t) = ∆r b0n−r (t) (2.3)
dt (n − r)!
En effet, d’après le corollaire, on a :
n−r
dr n n! X r
b (t) = ∆ bi Bi,n−r (t)
dtr (n − r)! i=0
exemple 2.3
Soit b3 (t) une courbe de Bézier cubique définie par ses points de contrôle :
b0 = (1, 1), b1 = (3, 5), b2 = (7, 9) et b3 = (11, 1) Supposons qu’on ait besoin
28 CHAPITRE 2. LES COURBES DE BÉZIER
d2 n
de calculer la dérivée seconde dt2
b (0.5)
On applique l’algorithme de De Casteljau aux points (2, 0), (0, −12) considérés
comme étant les points de contrôle d’une nouvelle courbe de Bézier de degré
1
(2, 0) (0, −12)
(1, −6)
d2 n
b (0.5) = (6, −36)
dt2
Seconde méthode :
A l’aide de l’algorithme de De Casteljau, on calcule les points intermédiaires
b1i :
(1, 1) (3, 5) (7, 9) (11, 1)
(2, 3) (5, 7) (9, 5)
d2 n
b (0.5) = (6, −36)
dt2
bn (0) = b0 et bn (1) = bn
Preuve :
n
X
n
b (0) = bi Bi,n (0)
i=0
n
X n i n−i
= bi 01
i=0
i
= b0 · 1 (car : 00 = 1 par convention)
= b0
De la même manière, on a :
Xn
bn (1) = bi Bi,n (1)
i=0
n
X n i n−i
= bi 10
i=0
i
= bn · 1 (car : 00 = 1 par convention)
= bn
Preuve :
n−1
X
n ′
[b ] (0) = n∆bi Bi,n−1 (0)
i=0
0 i 6= 0
Comme : Bi,n−1 (0) = alors :
1 i=0
[bn ]′ (0) = n∆b0
= n(b1 − b0 )
30 CHAPITRE 2. LES COURBES DE BÉZIER
De la même manière :
n−1
X
n ′
[b ] (1) = n∆bi Bi,n−1 (1)
i=0
0 i 6= n − 1
Comme : Bi,n−1 (1) = alors :
1 i=n−1
2.7.3 Symmetrie
La courbe de Bézier ne varie pas en fonction de l’ordre des points de
contrôle,qu’ils soient dans l’ordre b0 , b1 , · · · , bn ou dans l’ordre inverse bn , bn−1 , · · · , b0 .
Ceci est vrai grace à la formule suivante :
n
X n
X
bi Bi,n (t) = bn−i Bi,n (1 − t)
i=0 i=0
Preuve :
On sait d’après la propriété de symmetrie des polynômes de Bernstein que :
1.5
0.5
-0.5
-1
-1.5
-2
0 0.5 1 1.5 2 2.5 3 3.5 4
Théorème 2.2
Tout les points de la courbe de Bézier se trouvent à l’intérieur de l’envellope
convexe de l’ensemble des points de contrôle {b0 , · · · , bn } càd :
∀t ∈ [0, 1], bn (t) ∈ CH{b0 , · · · , bn }
Remarque 4
CH{b0 , · · · , bn } est souvent appelée envellope convexe de la courbe de Bézier.
Preuve :
Soit t ∈ [0, 1]
n
X
n
b (t) = Bi,n (t)bi
i=0
Comme les polynômes de Bernstein vérifient les propriétés de positivité et
de partition de l’unité, alors d’après la définition de l’envellope convexe :
bn (t) ∈ CH{b0 , · · · , bn }
Preuve :
Une transformation affine T a toujours la P forme : T (r) = Ar + v où : A est
une matrice et v un vecteur. On pose r = ni=0 bi Bi,n (t) et on aura :
n
! n
!
X X
T bi Bi,n (t) = A bi Bi,n (t) + v
i=0 i=0
n
X n
X n
X
= A(bi )Bi,n (t) + vBi,n (t) car : Bi,n (t) = 1
i=0 i=0 i=0
n
X
= [A(bi ) + v] Bi,n (t)
i=0
n
X
= T (bi )Bi,n (t)
i=0
esse.
Supposons par exemple, qu’une courbe de Bézier est coupée à hauteur de
t = α pour donner deux segments de courbe notés bg (t) et bd (t) définis res-
pectivement sur [0, α] et [α, 1].
Comme bg et bd sont des courbes polynômiales, ellent peuvent être représentées
dans la forme de Bézier sur [0, 1]
On doit pour celà trouver les points de contrôle pour bg et bd . Ce qui résulte
du théorème suivant :
Théorème 2.3
Soit bn (t) = ni=0 bi Bi,n (t) une courbe de Bézier de degré n.
P
Les points de contrôle des deux segments de courbe obtenus par subdivision
de bn (t) à hauteur de t = α avec α ∈ [0, 1] sont :
Où : bji sont les points calculés par l’algorithme de De Casteljau pour t = α.
2.8. SUBDIVISION D’UNE COURBE DE BÉZIER 33
Preuve :
Commençons par démontrer le résultat 2.6 : Soit bg une courbe de Bézier
définie par les points de contrôle : b00 , b10 , b20 , · · · , b0n−1 , bn0 (obtenus en appli-
quant l’algorithme de DeCasteljau pour t = α) On doit montrer que bg est
bien la portion de la courbe bn obtenue quand le paramètre t varie dans
l’intervalle [0, α] :
n
X
bg (t) = bj0 (α)Bj,n (t)sur l’intervalle [0, 1]
j=0
n j
!
X X
= bi Bi,j (α) Bj,n (t)(d’après lemme 2.1)
j=0 i=0
n j !
X X j i n j
= bi α (1 − α)j−i t (1 − t)n−j
j=0 i=0
i j
En devellopant la somme, on obtient
t (1 − t)n 00 α0 (1 − α)0 +
n 0
0
1
n 1 n−1
0 1
1 t (1 − t) 0
α (1 − α) +
bg (t) =
b0 +
n t2 (1 − t)n−2 2 α0 (1 − α)2 + · · · +
2 0
n n n−n n
0 n
n
t (1 − t) 0
α (1 − α)
t (1 − t)n−1 11 α1 (1 − α)0 +
n 1
1
n−2 2
n 2 1 1
2 t (1 − t) α (1 − α) +
1
b1 +
3
n
3 n−3
1 2
3 t (1 − t) α (1 − α) + · · · +
1
n n n
t (1 − t)n−n 1 α1 (1 − α)n−1
n
t (1 − t)n−2 22 α2 (1 − α)0 +
n 2
2
3
n
3 2 1
n−3
t (1 − t) α (1 − α) + · · · + b2 +
3 2
n n n−n n 2
n−n
n
t (1 − t) 2
α (1 − α)
n n n−n n
··· + t (1 − t) αn (1 − α)n−n bn
n n
34 CHAPITRE 2. LES COURBES DE BÉZIER
et on obtient
n
X n k
bg (t) = tk α0 (1 − t)n−k (1 − α)k b0 +
k=0
k0
n
X n k k 1
t α (1 − t)n−k (1 − α)k−1 b1 +
k=1
k 1
n
X n k k 2
t α (1 − t)n−k (1 − α)k−2 b2 +
k=0
k 2
n
X n k k k
··· + t α (1 − t)n−k (1 − α)k−n bn
k=0
k n
n
" n #
X X n k k i n−k k−i
= t α (1 − t) (1 − α) bi
i=0 k=i
k i
En réindexant, on aura :
n
" n−i #
X X n i + k i+k i
bg (t) = t α (1 − t)n−i−k (1 − α)k bi (2.8)
i=0 k=0
i + k i
Donc, bg est bien défini par les points de contrôle bj0 avec : 0 ≤ j ≤ n
ci = bn−i avec : i = 0, · · · , n
2.9.1 Continuité
Soit P (t) une courbe de Bézier par morceaux définie sur I = [α, β]
composée des courbes de Bézier Bj (t) définies sur Ij = [tj , tj+1 ] avec :
0≤j ≤r−1
Comme les fonctions coordonnées de P (t) sont des fonctions polynômiales
par morceaux, alors P (t) est C ∞ pour tout paramètre t sauf aux points de
cassure tj .
Suppososns que Bj (t) est de degré nj et ses points de contrôle sont :
(j) (j)
b0 , · · · , bn j .
P (t) est continue en tj si et seulement si :
lim P (t) = lim P (t)
t→t+
j t→t−
j
= P (tj )
2.9. COURBES DE BÉZIER PAR MORCEAUX 37
Or
= b(j−1)
nj−1
et
= bj0
(j−1)
D’où P (t) est continue en t = tj seulement si : P (tj ) = bj0 = bnj−1
Géometriquement, celà veut dire que pour que P(t) soit continue il faut que
le dernier point de contrôle de Bj−1 (t) soit le premier point de contrôle de
Bj (t)
Théorème 2.4
Soit P (t) une courbe de Bézier par morceaux définie sur I = [α, β] composée
des courbes de Bézier Bj (t) définies sur Ij = [tj , tj+1 ] avec : 0 ≤ j ≤ r − 1
alors :
(r) (r)
P est C k ⇔ Bj (tj ) = Bj−1 (tj )
Preuve :
Soit P (r) (t) la dérivée r-ième de P (t)
P est C k veut dire que ∀ 0 ≤ r ≤ k P (r) est continue pour tout t
P (r) est continue en t = tj si et seulement si :
D’où :
(r) (r)
P est C k ⇔ Bj (tj ) = Bj−1 (tj )
38 CHAPITRE 2. LES COURBES DE BÉZIER
-2
-4
0 2 4 6 8 10
exemple 2.4
Considérons trois courbes de Bézier cubiques à intervalle arbitraire B0 (t), B1 (t), B2 (t)
définies respectivement sur les intervalles [−5, −1], [−1, 2], [2, 5] et munies des
points de contrôle :
Ces trois courbes se joignent bout à bout pour former une courbe de Bézier
par morceaux P (t) définie sur [−5, 5] par :
B0 (t) t ∈ [−5, −1]
P (t) = B1 (t) t ∈ [−1, 2]
B2 (t) t ∈ [2, 5]
Remarque 7
Les courbes que nous avons étudié dans ce chapitre seront appelés courbes
de bézier integrales pour les distinguer de celles rationnelles qu’on étudiera
au chapitre suivant.
Chapitre 3
3.1 Introduction
Les courbes de Bézier classiques, étant des courbes polynomiales, présentent
le désavantage de ne pas pouvoir représenter toutes les formes voulues.
A titre d’exemple, les hyperboles ou encore les arcs de cercle ne peuvent
pas être paramétrisés par des polynômes.
En effet, le cercle de rayon 1 centré à l’origine vérifie l’équation implicite :
x2 + y 2 = 1
39
40 CHAPITRE 3. COURBE DE BÉZIER RATIONNELLE
Ainsi, pour élargir le champ des formes pouvant être modélisées, on définit
les courbes de Bézier rationnelles dont les fonctions de base ne sont plus des
polynômes(polynômes de Bernstein) mais des fonctions rationnelles qu’on
définira.
3.2 Définition
Une courbe de Bézier rationnelle de degré n munie des points de contrôle
b0 , · · · , bn est définie par [2],[1],[7] :
Pn
wi bi Bi,n (t)
B(t) = Pi=0 n
i=0 wi Bi,n (t)
avec : t ∈ [0, 1] et wi ∈ R.
Les wi sont appelés ”poids”.
On pose que si wi = 0 alors wi bi est remplacé par bi et on suppose que
les wi ne sont pas tous nuls.
Remarque 8
1. Si les wi sont égaux, alors on retrouve les courbes de Bézier intégrales.
2. Une courbe de Bézier rationnelle peut aussi s’écrire sous la forme :
n
X
B(t) = bi Ri,n (t)
i=0
Où
w B (t)
Pn i i,n si wi 6= 0
i=0 wi Bi,n (t)
Ri,n (t) =
Bi,n (t)
Pn
wi Bi,n (t)
si wi = 0
i=0
Remarque 9
Soit (X, Y, W ) un point de l’espace projectif P2 représentant le point cartésien
(x, y) = (X/W, Y /W ).
Géométriquement, le point cartésien (x, y) = (X/W, Y /W ) est la projec-
tion du point (X, Y, W ) sur le plan W = 1 par rapport à l’origine et ceci en
confondant le plan W = 1 avec l’espace R2 , comme le montre la figure 3.1
Définition 3.1
Une transformation projective est une application L : P2 → P2 définie par :
n α(t) X n
X pi
Bi,n (t) = β(t)
wi Bi,n (t)
wi
i=0 1 i=0
On pose pi = wi bi et on aura :
Pn
α(t) wi bi Bi,n (t)
B(t) = = Pi=0
n
β(t) i=0 wi Bi,n (t)
exemple 3.2
Soit B(t) une courbe de Bézier quadratique rationnelle munie des points de
contrôle b0 (1, 0), b1 (1, 1), b2 (0, 1) et des poids w0 = 1, w1 = 1 et w2 = 2 alors :
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1
B(0) = b0 , B(1) = bn
w1 wn−1
B ′ (0) = n (b1 − b0 ) et B ′ (1) = n (bn − bn−1 )
w2 wn
n
!
X
B(t)M = b̂i Bi,n (t) ·M
i=0
n
X
= (b̂i M )Bi,n (t)
i=0
Xn
= ĉi Bi,n (t) ,avec ĉi = b̂i M
i=0
r−1
wir−1 r−1 wi+1
bri (t) = (1 − t) b + t br−1
wir i wir i+1
wir (t) = (1 − t)wir−1 (t) + twi+1
r−1
(t)
Remarque 10
Comme dans le cas intégral, l’algorithme de De Casteljau peut être utilisé
pour subdiviser la courbe. Les points de contrôle des deux segments de courbe
Bg et Bd obtenues après avoir coupé la courbe B(t) à hauteur de t = α sont
données par les mêmes relations que dans le cas intégral :
i i
Bg = bio (t) Bd = bin−1 (t)
et :
wgi = woi wdi = wn−1 i
exemple 3.3
On reprend l’exemple précèdant d’une courbe de Bézier quadratique ration-
nelle B(t) munie des points de contrôle b0 (1, 0), b1 (1, 1), b2 (0, 1) et des poids
w0 = 1, w1 = 1 et w2 = 2
Supposons qu’on veuille calculer à l’aide de l’algorithme de De casteljau
la valeur B(0.5) On commence par calculer les poids :
1 1 2
1 1.5
1.25
1.4
1.2
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4
Preuve :
′
h(r+1) (t) = h(r) (t)
" r #′
X r
= f (j) (t)g (r−j) (t)
j=0
j
r
X r r
(j+1) (r−j)
X r (j)
= f (t)g (t) + f (t)g (r−j+1) (t)
j=0
j j=0
j
r−1
X r r
(r+1) (j+1) (r−j) (r+1)
X r (j) (r−j+1)
= f g+ f g + fg + f g
j=0
j j=1
j
r r
(r+1) (r+1)
X r (j) (r−j+1)
X r (j) (r−j+1)
= f g + fg + f g + f g
j=1
j−1 j=1
j
r
(r+1) (r+1)
X r r
= f g + fg + + f (j) g (r−j+1)
j=1
j − 1 j
r r r+1
Or : + = d’où :
j−1 j j
r
(r+1) (r+1) (r+1)
X r+1
h (t) = f g + fg + f (j) g (r−j+1)
j=1
j
r+1
X r + 1 (j) (r−j+1)
= f g
j=0
j
Théorème 3.2
La dérivée r-ième d’une courbe de Bézier rationnelle est donnée par :
(r)
Pr r
j (r−j)
p (t) − j=1 j w (t)B (t)
B (r) (t) =
w(t)
Preuve :
Soit B(t) la courbe de Bézier rationnelle définie par :
Pn
wi bi Bi,n (t)
B(t) = Pi=0 n
i=0 wi Bi,n (t)
r
(r)
X r
p (t) = w(j) (t)B (r−j) (t)
j=0
j
r
X
(r) r (j)
= w(t)B (t) + w (t)B (r−j) (t)
j=1
j
Finallement, on aura :
Pr r
p(r) (t) − wj (t)B (r−j) (t)
j=1 j
B (r) (t) =
w(t)
50 CHAPITRE 3. COURBE DE BÉZIER RATIONNELLE
4.1 Définition
Soient U = t0 , t1 , · · · , tm une suite de (m + 1) nombres réels tels que :
ti ≤ ti+1 pour : 0 ≤ i ≤ m − 1
Les ti sont appelés noeuds et U est dit vecteur nodal.
Soit d ∈ N tel que : 0 ≤ d ≤ m
les points t0 , t1 , · · · , td et tm−d , tm−d+1 , · · · , tm sont dits noeuds extrêmes
les points td+1 , · · · , tm−d−1 sont appelés noeuds interieurs.
51
52 CHAPITRE 4. LES FONCTIONS DE BASE DES B-SPLINES
Définition 4.1
Les fonctions de base de B-spline de degré d définies par le vecteur no-
dal (t0 , t1 , · · · , tm ) et notées Ni,d (t) sont définies par récurrence comme suit
[3],[1],[6] :
1 t ∈ [ti , ti+1 )
Ni,0 (t) =
0 ailleurs
t − ti ti+d+1 − t
Ni,d (t) = Ni,d−1 (t) + Ni+1,d−1 (t)
ti+d − ti ti+d+1 − ti+1
pour : d ≥ 1
exemple 4.1
On considère le vecteur nodal U = (1, 2, 4, 5, 7, 9, 11)
Les fonctions de base sont données par :
pour d = 0
1 t ∈ [1, 2)
N0,0 =
0 ailleurs
1 t ∈ [2, 4)
N1,0 =
0 ailleurs
1 t ∈ [4, 5)
N2,0 =
0 ailleurs
1 t ∈ [5, 7)
N3,0 =
0 ailleurs
1 t ∈ [7, 9)
N4,0 =
0 ailleurs
1 t ∈ [9, 11)
N5,0 =
0 ailleurs
pour d = 1
t−1 t ∈ [1, 2)
N0,1 = (4 − t)/2 t ∈ [2, 4)
0 ailleurs
(t − 2)/2 t ∈ [2, 4)
N1,1 = 5−t t ∈ [4, 5)
0 ailleurs
4.1. DÉFINITION 53
1.2
0.8
0.6
0.4
0.2
-0.2
-2 0 2 4 6 8 10 12 14
t−4 t ∈ [4, 5)
N2,1 = (7 − t)/2 t ∈ [5, 7)
0 ailleurs
(t − 5)/2 t ∈ [5, 7)
N3,1 = (9 − t)/2 t ∈ [7, 9)
0 ailleurs
(t − 7)/2 t ∈ [7, 9)
N4,1 = (11 − t)/2 t ∈ [9, 11)
0 ailleurs
pour d = 2
(t − 1)2 /3 t ∈ [1, 2)
(4 − t)(t − 1)/6 + (t − 2)(5 − t)/6 t ∈ [2, 4)
N0,2 =
(5 − t)2 /3 t ∈ [4, 5)
0 ailleurs
(t − 2)2 /6 t ∈ [2, 4)
(5 − t)(t − 2)/3 + (t − 4)(7 − t)/3 t ∈ [4, 5)
N1,2 =
(7 − t)2 /6 t ∈ [5, 7)
0 ailleurs
(t − 4)2 /3 t ∈ [4, 5)
(7 − t)(t − 4)/6 + (t − 5)(9 − t)/8 t ∈ [5, 7)
N2,2 =
(9 − t)2 /8 t ∈ [7, 9)
0 ailleurs
(t − 5)2 /8 t ∈ [5, 7)
(9 − t)(t − 5)/8 + (t − 7)(11 − t)/8 t ∈ [7, 9)
N3,2 =
(11 − t)2 /8 t ∈ [9, 11)
0 ailleurs
′ d d
Ni,d (t) = Ni,d−1 (t) − Ni+1,d−1 (t)
ti+d − ti ti+d+1 − ti+1
4.2. DÉRIVATION DES B-SPLINES 55
N1,2
0.8 N3,2
N2,2
N0,2
0.6
0.4
0.2
-0.2
-2 0 2 4 6 8 10 12 14
Preuve :
La preuve se fait par récurrence sur d
t − ti ti+2 − t
Pour d = 1, Ni,1 (t) = Ni,0 (t) + Ni+1,0 (t)
ti+1 − ti ti+2 − ti+1
′ 1 1
D’où : Ni,1 (t) = Ni,0 (t) − Ni+1,0 (t)
ti+1 − ti ti+2 − ti+1
Maintenant, supposons le résultat vrai jusqu’à l’ordre d
On a par définition :
t − ti ti+d+2 − t
Ni,d+1 (t) = Ni,d (t) + Ni+1,d (t)
ti+d+1 − ti ti+d+2 − ti+1
′ 1 t − ti
⇒ Ni,d+1 (t) = Ni,d (t) + N ′ (t)
ti+d+1 − ti ti+d+1 − ti i,d
1 ti+d+2 − t
− Ni+1,d (t) + N ′ (t)
ti+d+2 − ti+1 ti+d+2 − ti+1 i+1,d
′ ′
On applique l’hypothèse de récurrence sur Ni,d (t) et Ni,d+1 (t), on aura :
′ 1 t − ti
Ni,d+1 (t) = Ni,d (t) +
t − ti ti+d+1 − ti
i+d+1
d d
Ni,d−1 (t) − Ni+1,d−1 (t)
ti+d − ti ti+d+1 − ti+1
1 ti+d+2 − t
− Ni+1,d (t) +
t − ti+1 ti+d+2 − ti+1
i+d+2
d d
Ni+1,d−1 (t) − Ni+2,d−1 (t)
ti+d+1 − ti+1 ti+d+2 − ti+2
1 1
= Ni,d (t) − Ni+1,d (t)
ti+d+1 − ti ti+d+2 − ti+1
d(t − ti )
+ Ni,d−1 (t)
(ti+d+1 − ti )(ti+d − ti )
ti+d+2 − t t − ti
+d −
(ti+d+2 − ti+1 )(ti+d+1 − ti+1 ) (ti+d+1 − ti )(ti+d+1 − ti+1 )
ti+d+2 − t
Ni+1,d−1 (t) − d Ni+2,d−1 (t)
(ti+d+2 − ti+1 )(ti+d+2 − ti+2 )
D’un autre côté :
4.3. PROPRIÉTÉS DES FONCTIONS DE BASE DES B-SPLINES 57
D’où :
′ 1 1 d
Ni,d+1 (t) = Ni,d (t) − Ni+1,d (t) +
t − ti ti+d+2 − ti+1 ti+d+1 − ti
i+d+1
t − ti ti+d+1 − t d
Ni,d−1 (t) + Ni+1,d−1 (t) −
t − ti ti+d+1 − ti+1 ti+d+2 − ti+1
i+d
t − ti+1 ti+d+2 − t
Ni+1,d−1 (t) + Ni+2,d−1 (t) Ni+2,d−1 (t)
ti+d+1 − ti+1 ti+d+2 − ti+2
1 1 d
= Ni,d (t) − Ni+1,d (t) + Ni,d (t)
ti+d+1 − ti ti+d+2 − ti+1 ti+d+1 − ti
d
− Ni+1,d (t)
ti+d+2 − ti+1
d+1 d+1
= Ni,d (t) − Ni+1,d (t)
ti+d+1 − ti ti+d+2 − ti+1
Donc, on a bien :
′ d d
Ni,d (t) = Ni,d−1 (t) − Ni+1,d−1 (t)
ti+d − ti ti+d+1 − ti+1
Ni,k (t) = 0 , t ∈
/ [ti , ti+k+1 )
Preuve :
Si t ∈
/ [ti , ti+k+2 ) alors : t ∈
/ [ti , ti+k+1 ) et t ∈
/ [ti+1 , ti+k+2 )
4.3.2 Nonnégativité
∀t ∈ R, Ni,k (t) ≥ 0
Preuve :
La preuve se fait par induction sur k
pour k = 0 la propriété est vraie par définition.
On suppose le résultat vrai jusqu’au rang k :
Ni,k (t) ≥ 0 et : Ni+1,k (t) ≥ 0
On montre que la propriété est vraie pour k + 1 :
t − ti ti+k+2 − t
Ni,k+1 (t) = Ni,k (t) + Ni+1,k (t)
ti+k+1 − ti ti+k+2 − ti+1
4.3. PROPRIÉTÉS DES FONCTIONS DE BASE DES B-SPLINES 59
Ni,k+1 (t) = 0 , t ∈
/ [ti , ti+k+2 )
t − ti ti+k+2 − t
, ≥0
ti+k+1 − ti ti+k+2 − ti+1
Comme Ni,k et Ni+1,k sont supposées toutes deux non négatives alors Ni,k+1
est elle aussi non négative pour n’importe quel t
Preuve :
On démontre par récurrence que les Ni,k (t) sont des fonctions polynômiales
par morceaux. En effet, les Ni,0 (t) étant des fonctions polynômiales par mor-
ceaux par définition, si on suppose Ni,k (t) et Ni+1,k (t) par morceaux, alors la
définition de récurrence nous donne que Ni,k+1 (t) est aussi par morceaux car
étant construit avec deux fonctions polynômiales par morceaux.
r
X
∀0 ≤ r ≤ m Nj,k (t) = 1 pour t ∈ [tr , tr+1 [
j=r−k
Preuve :
La preuve se fait par recurrence sur k
Pour k = 0, Nr,0 (t) = 1 si t ∈ [tr , tr+1 [
Pr
On suppose que : ∀t ∈ [tr , tr+1 [, j=r−k−1 Nj,k−1 (t) = 1
D’un autre côté :
60 CHAPITRE 4. LES FONCTIONS DE BASE DES B-SPLINES
Pr
j=r−k Nj,k (t) = N
h r−k,k (t) + · · · + Nr−1,k (t) + Nr,k (t) i
= tt−t r−k
r −tr−k
N r−k,k−1 (t) + tr+1 −t
N
tr+1 −tr−k+1 r−k+1,k−1
(t)
h i
t−tr−1 tr+k −t
+ · · · + tr+k−1 −tr−1 Nr−1,k−1 (t) + tr+k −tr Nr,k−1 (t)
h i
t−tr tr+k+1 −t
+ tr+k N
−tr r,k−1
(t) + N
tr+k+1 −tr+1 r+1,k−1
(t)
h i
t−tr−k
= N
tr −tr−k r−k,k−1
(t) + tr+1 −t
+ t−tr−k+1
htr+1 −tr−k+1 tr+1 −t i r−k+1
tr+k −t t−tr
Nr−k+1,k−1 (t) + · · · + tr+k −tr
+ tr+k −tr Nr,k−1 (t)
tr+k+1 −t
+ tr+k+1 N
−tr+1 r+1,k−1
(t)
t−tr−k
= N
tr −tr−k r−k,k−1
(t) + Nr−k+1,k−1 (t) + · · · + Nr,k−1 (t)+
tr+k+1 −t
N
tr+k+1 −tr+1 r+1,k−1
(t)
Comme Nr−k,k−1 (t) = 0 pour t ∈ / [tr−k , tr ) et :
Nr+1,k−1 (t) = 0 pour t ∈
/ [tr+1 , tr+k+1 )
Il s’ensuit que :
r
X
Nj,k (t) = Nr−k+1,k−1 (t) + · · · + Nr,k−1 (t)
j=r−k
r
X
= Nj,k−1 (t)
j=r−k+1
= 1
Pr
Donc, ∀t ∈ [tr , tr+1 [, j=r−k Nj,k (t) = 1
4.3.5 Continuité
Si le noeud ti est de multiplicité pi alors Ni,k (t) est C k−pi en t = ti et C ∞
ailleurs. Donc, on augmente la continuité en augmentant le degré k et on la
diminue en augmentant la multiplicité pi
Preuve :
Comme les fonctions de base Ni,k (t) sont des polynômes par morceaux de
degré k, ils sont C ∞ sauf aux noeuds ou se joignent les segments de courbes
qui les composent.
Supposons que le noeud ti est de multiplicité pi avec 1 ≤ pi ≤ k
4.3. PROPRIÉTÉS DES FONCTIONS DE BASE DES B-SPLINES 61
Pour k = 1, pi = 1 et :
t − ti ti+2 − t
Ni,1 (t) = Ni,0 (t) + Ni+1,0 (t)
ti+1 − ti ti+2 − ti+1
t−ti
ti+1 −ti
, t ∈ [ti , ti+1 [
ti+2 −t
= t i+2 −ti+1
, t ∈ [ti+1 , ti+2 [
0 ailleurs
′ k k
Ni,k (t) = Ni,k−1 (t) − Ni+1,k−1 (t)
ti+k − ti ti+k+1 − ti+1
′
Ni,k (t) est C k−1−pi en t = ti car elle s’écrit comme combinaison de deux
fonctions C k−1−pi
De plus, comme Ni,k (t) est continue en t = ti , on en déduit que Ni,k (t)
est C k−pi en t = ti
62 CHAPITRE 4. LES FONCTIONS DE BASE DES B-SPLINES
Chapitre 5
Courbes B-splines
5.1 Définition
La Courbe B-spline de degré d munie des points de contrôle b0 , · · · , bn est
définie sur l’intervalle [a, b] par [3],[7],[6] :
n
X
B(t) = bi Ni,d (t)
i=0
Où les Ni,d (t) sont les fonctions de base des B-splines de degré d définies
par le vecteur nodal (t0 , · · · , td = a, · · · , tm−d = b, · · · , tm )
Remarque 11
Pour les distinguer de celles rationnelles, les courbes B-splines définies plus
haut sont dites intégrales ou non rationnelles.
Remarque 12
Alors qu’une courbe de Bézier de degré d a exactement (d + 1) points de
contrôle, une B-spline de degré d peut avoir n’importe quel nombre de points
de contrôle pourvu qu’on dispose d’assez de noeuds.
Ainsi pour modéliser des formes assez complexes, les B-splines sont bien
plus efficaces que les courbes de Bézier car on peut augmenter le nombre de
points de contrôle sans augmenter le degré de la courbe.
63
64 CHAPITRE 5. COURBES B-SPLINES
m+1=n+d+2⇒m=n+d+1
exemple 5.1
Soit B(t) une courbe de B-spline définie sur [4, 7] munie des points de contrôle :
b0 = (−4, −1), b1 = (−2, 1), b2 = (1, 3) et b3 = (3, 1) et du vecteur nodal
U = (1, 2, 4, 5, 7, 9, 11).
Les fonctions de base de degré 2 sont données dans l’exemple 4.1 par :
(t − 1)2 /3 t ∈ [1, 2)
(4 − t)(t − 1)/6 + (t − 2)(5 − t)/6 t ∈ [2, 4)
N0,2 =
(5 − t)2 /3 t ∈ [4, 5)
0 ailleurs
(t − 2)2 /6 t ∈ [2, 4)
(5 − t)(t − 2)/3 + (t − 4)(7 − t)/3 t ∈ [4, 5)
N1,2 =
(7 − t)2 /6 t ∈ [5, 7)
0 ailleurs
(t − 4)2 /3 t ∈ [4, 5)
(7 − t)(t − 4)/6 + (t − 5)(9 − t)/8 t ∈ [5, 7)
N2,2 =
(9 − t)2 /8 t ∈ [7, 9)
0 ailleurs
(t − 5)2 /8 t ∈ [5, 7)
(9 − t)(t − 5)/8 + (t − 7)(11 − t)/8 t ∈ [7, 9)
N3,2 =
(11 − t)2 /8 t ∈ [9, 11)
0 ailleurs
3.5
2.5
1.5
0.5
0
-2 -1 0 1 2 3
2
(5−t)(t−2) (t−4)(7−t)
5−t2
(−4, −1) 3 + (−2, 1) 3
+ 3
+ (1, 3) (t−4)
3
t ∈ [4, 5)
B(t) =
(−2, 1) (7−t)2 + (1, 3) (7−t)(t−4) + (t−5)(9−t)
+ (3, 1) (t−5)
2
t ∈ [5, 7]
6 6 8 8
U = (0, · · · , 0, 1, · · · , 1)
avec 0 et 1 répétés chacun (n+1) fois. Ceci est illustré par l’exemple suivant :
exemple 5.2
Soit b0 , b1 , b2 des points de contrôle définissant une courbe B-spline munie
du vecteur nodal (0, 0, 0, 1, 1, 1) Le calcul des fonctions de base Ni,n (t) nous
donne :
N0,0 = N1,0 = N3,0 = N4,0 = 0
66 CHAPITRE 5. COURBES B-SPLINES
(1 − t)2 t ∈ [0, 1]
N0,2 =
0 ailleurs
2t(1 − t) t ∈ [0, 1]
N1,2 =
0 ailleurs
2
t t ∈ [0, 1]
N2,2 =
0 ailleurs
b0 (1 − t)2 + b1 2t(1 − t) + b2 t2 t ∈ [0, 1]
On aura : B(t) =
0 ailleurs
Ce qui revient à représenter exactement une courbe de Bézier quadratique
sur [0, 1]
Preuve :
n
X
B(t) = bi Ni,d (t)
i=0
r−d−1
X r
X n
X
= bi Ni,d (t) + bi Ni,d (t) + bi Ni,d (t)
i=0 i=r−d i=r+1
De la même manière,
r−d−1
X
∀i ∈ [0, r − d − 1], Ni,d (t) = 0 ⇒ bi Ni,d (t) = 0
i=0
Finallement, on aura :
r
X
B(t) = bi Ni,d (t) pour t ∈ [tr , tr+1 [
i=r−d
Preuve :
D’après la définition de l’enveloppe convexe :
( n
)
X
CH{x0 , x1 , · · · , xn } = a0 x0 + a1 x1 + · · · , an xn /ai ≥ 0 et ai = 1
i=0
Pr
Or, i=r−d Ni,d (t) = 1 et Ni,d (t) ≥ 0 pour t ∈ [tr , tr+1 [
On sait que :
r
X
B(t) = bi Ni,d (t), t ∈ [tr , tr+1 [
i=r−d
5.4.4 Continuité
Si pi est la multiplicité du noeud ti , alors B(t) est au moins C d−pi en ti et
∞
C ailleurs.
Preuve :
Comme B(t) est une fonction polynômiale par morceaux elle est C ∞ partout
sauf aux points ti
On sait dejà que pour un noeud ti de multiplicité pi ,
Ni,d (t) est C d−pi en ti et C ∞ ailleurs.
Donc, en ti , B(t) est une somme de fonctions C d−pi ou C ∞ , ceci implique
que B(t) est au moins C d−pi en ti
B(td ) = b0 et B(tm ) = bn
Procédure :
j
bi (t) = (1 − αij (t))bi−1
j−1
(t) + αij (t)bij−1 (t)
pour : j = 1, · · · , d ;
i = r − d + j, · · · , r
0
et où : b0i (t) = bi et b−1 = bm−d+1 =
0
Sortie : bdr (t) le point à paramètre t dans la courbe B-spline B(t)
Remarque 13
B(t) étant une courbe par morceaux, l’algorithme nous indique les points de
la courbe B-spline pour chaque segment de courbe défini sur [tr , tr+1 [ avec
r ∈ [d, m − d − 1]
Remarque 14
Comme pour celui de De Casteljau, l’algorithme de De Boor peut être visua-
lisé sous forme d’un triangle :
j = 1, · · · , d et i = r − d + j, · · · , r
Preuve :
La démonstration se fait par récurrence sur j
70 CHAPITRE 5. COURBES B-SPLINES
r
X
B(t) = bi Ni,d (t), t ∈ [tr , tr+1 [
i=r−d
t − ti ti+d+1 − t
Or, Ni,d (t) = Ni,d−1 (t) + Ni+1,d−1 (t)
ti+d − ti ti+d+1 − ti+1
r r
X t − ti X ti+d+1 − t
D’où :B(t) = bi Ni,d−1 (t) + bi Ni+1,d−1 (t)
i=r−d
ti+d − ti i=r−d
ti+d+1 − ti+1
r r+1
X t − ti X ti+d − t
B(t) = bi Ni,d−1 (t) + bi−1 Ni,d−1 (t)
i=r−d
ti+d − ti i=r−d+1
ti+d − ti
r
X t − ti ti+d − t
B(t) = bi + bi−1 Ni,d−1 (t)
i=r−d+1
ti+d − ti ti+d − ti
Xr
= b1i Ni,d−1 (t)
i=r−d+1
t − ti ti+d−j+2 − t
Or Ni,d−j+1 (t) = Ni,d−j (t) + Ni+1,d−j (t)
ti+d−j+1 − ti ti+d−j+2 − ti+1
r
X t − ti
D’oùB(t) = bij−1 Ni,d−j (t)
i=r−d+j−1
ti+d−j+1 − ti
r
X ti+d−j+2 − t
+ bij−1 Ni+1,d−j (t)
i=r−d+j−1
ti+d−j+2 − ti+1
5.5. L’ALGORITHME DE DE BOOR 71
r r+1
X t − ti X j−1 ti+d−j+1 − t
B(t) = bij−1 Ni,d−j (t)+ bi−1 Ni,d−j (t)
i=r−d+j−1
ti+d−j+1 − ti i=r−d+j
ti+d−j+1 − ti
r
X t − ti j−1 ti+d−j+1 − t
B(t) = bij−1 + bi−1 Ni,d−j (t)
i=r−d+j
ti+d−j+1 − ti ti+d−j+1 − ti
Xr
= bji Ni,d−j (t)
i=r−d+j
j = 1, · · · , d et i = r − d + j, · · · , r
En particulier pour j = d
r
X
B(t) = bdi Ni,0 (t)
i=r
= bdr Nr,0 (t)
exemple 5.3
On reprend l’exemple 5.1
Supposons qu’on veuille calculer B(4.25)
t−t1 4.25−2
α11 = t3 −t1
= 5−2
= 0.75
t−t2 4.25−4
α21 = t4 −t2
= 7−4
= 0.083
t−t2 4.25−4
α22 = t3 −t2
= 5−4
= 0.25
Preuve : P
Soit B(t) = ni=0 bi Ni,d (t), t ∈ [td , tm − d] Alors :
n
!′
X
B ′ (t) = bi Ni,d (t)
i=0
n
X
′
= bi Ni,d (t)
i=0
n n
X d X d
= bi Ni,d−1 (t) − bi Ni+1,d−1 (t)
i=0
ti+d − ti i=0
t i+d+1 − t i+1
En réindexant, on aura :
n−1
′
X d
B (t) = (bi+1 − bi )Ni+1,d−1 (t)
i=0
ti+d+1 − ti+1
n−1
(1)
X
= bi Ni+1,d−1 (t)
i=0
Corollaire 5.1
La dérivée r-ième de B(t), notée B (r) (t) est donnée par :
n−r
(r)
X (r) (r) d−r+1 r−1
− bir−1
B (t) = bi Ni+r,d−r (t) où bi = bi+1
i=0
ti+d+1 − ti+r
Preuve :
La preuve se fait par induction sur r
n−1
(1)
X
′
B (t) = bi Ni+1,d−1 (t)
i=0
′
B (r+1) (t) = B (r) (t)
n−r
(r) ′
X
= bi Ni+r,d−r (t)
i=0
n−r
X (r) d−r
= bi Ni+r,d−r−1 (t)
i=0
ti+d − ti+r
n−r
X (r) d−r
− bi Ni+r+1,d−r−1 (t)
i=0
ti+d+1 − ti+r+1
n−r
X (r) d−r
B (r+1) (t) = bi Ni+r,d−r−1 (t)
i=0
ti+d − ti+r
n−r+1
X (r) d−r
− bi−1 Ni+r,d−r−1 (t)
i=1
ti+d − ti+r
n−r
(r+1)
X d − r (r) (r)
B (t) = bi − bi−1 Ni+r,d−r−1 (t)
i=1
ti+d − ti+r
En réindexant, on obtient :
n−r−1
(r+1)
X d−r
(r) (r)
B (t) = b − bi Ni+r+1,d−r−1 (t)
i=0
ti+d+1 − ti+r+1 i+1
N̂i,d (t) pour : i = 0, · · · , s − d − 1
t̂−t̂i
Ni,d (t) = N̂ (t) + t̂ t̂i+d+2−
t̂i+d+1 −t̂i i,d
t̂
N̂i+1,d (t) pour : i = s − d, · · · , s
i+d+2 −t̂i+1
N̂i+1,d (t) pour : i > s + 1
n+1
X
B(t) = b̂i N̂i,d (t) avec
i=0
bi ;0 ≤ i ≤ s − d
b̂i = (1 − αi )bi−1 + αi bi ;s − d + 1 ≤ i ≤ s
bi−1 ;s + 1 ≤ i ≤ n + 1
t̂ − ti t̂ − t̂i
αi = =
ti+d − ti t̂i+d+1 − t̂i
Preuve :
n
X
B(t) = bi Ni,d (t)
i=0
s−d−1
X s
X n
X
= bi Ni,d (t) + bi Ni,d (t) + bi Ni,d (t)
i=0 i=s−d i=s+1
76 CHAPITRE 5. COURBES B-SPLINES
s−d−1 s
X X t̂ − t̂i
B(t) = bi N̂i,d (t) + bi N̂i,d (t)
i=0 i=s−d
t̂i+d+1 − t̂i
s n
X t̂i+d+2 − t̂ X
+ bi N̂i+1,d (t) + bi N̂i+1,d (t)
i=s−d
t̂i+d+2 − t̂i+1 i=s+1
s−d−1
X t̂ − t̂s−d
= bi N̂i,d (t) + bs−d N̂s−d,d (t)
i=0
t̂s+1 − t̂s−d
s
X t̂ − t̂i t̂s+d+2 − t̂
+ bi N̂i,d (t) + bs N̂s+1,d (t)
i=s−d+1
t̂i+d+1 − t̂i t̂s+d+2 − t̂s+1
s−1 n
X t̂i+d+2 − t̂ X
+ bi N̂i+1,d (t) + bi N̂i+1,d (t)
i=s−d
t̂i+d+2 − t̂i+1 i=s+1
En réindexant, on obtient :
s−d−1 s
X t̂ − t̂s−d X t̂ − t̂i
B(t) = bi N̂i,d (t) + bs−d N̂s−d,d (t) + bi N̂i,d (t)
i=0
t̂s+1 − t̂s−d i=s−d+1
t̂ i+d+1 − t̂ i
s n
t̂s+d+2 − t̂ X t̂i+d+1 − t̂ X
+bs N̂s+1,d (t) + bi−1 N̂i,d (t) + bi N̂i+1,d (t)
t̂s+d+2 − t̂s+1 i=s−d+1
t̂ i+d+1 − t̂ i i=s+1
s−d−1
X t̂ − t̂s−d
= bi N̂i,d (t) + bs−d N̂s−d,d (t)
i=0
t̂s+1 − t̂s−d
s
X t̂ − t̂i t̂i+d+1 − t̂
+ bi + bi−1 N̂i,d (t)
i=s−d+1
t̂i+d+1 − t̂i t̂i+d+1 − t̂i
n
t̂s+d+2 − t̂ X
+bs N̂s+1,d (t) + bi N̂i+1,d (t)
t̂s+d+2 − t̂s+1 i=s+1
5.7. INSERTION DE NOEUDS 77
s−d−1
X
= bi N̂i,d (t) + bs−d N̂s−d,d (t) + bs N̂s+1,d (t)
i=0
s n
X t̂ − t̂i t̂i+d+1 − t̂ X
+ bi + bi−1 N̂i,d (t) + bi N̂i+1,d (t)
i=s−d+1
t̂i+d+1 − t̂i t̂i+d+1 − t̂i i=s+1
(car : t̂ = t̂s+1 )
s−d s
X X t̂ − t̂i t̂i+d+1 − t̂
= bi N̂i,d (t) + bi + bi−1 N̂i,d (t)
i=0 i=s−d+1
t̂i+d+1 − t̂i t̂i+d+1 − t̂i
n
X
+ bi N̂i+1,d (t)
i=s
s−d s
X X t̂ − t̂i t̂i+d+1 − t̂
= bi N̂i,d (t) + bi + bi−1 N̂i,d (t)
i=0 i=s−d+1
t̂i+d+1 − t̂i t̂i+d+1 − t̂i
n+1
X
+ bi−1 N̂i,d (t)
i=s+1
n+1
X
Donc, B(t) = b̂i N̂i,d (t) avec
i=0
bi ;0 ≤ i ≤ s − d
b̂i = (1 − αi )bi−1 + αi bi ;s − d + 1 ≤ i ≤ s
bi−1 ;s + 1 ≤ i ≤ n + 1
t̂ − ti t̂ − t̂i
αi = =
ti+d − ti t̂i+d+1 − t̂i
exemple 5.4
Considérons B(t) une B-spline définie sur le vecteur nodal
(t0 = 0, t1 = 0, t2 = 0, t3 = 1, t4 = 3, t5 = 3, t6 = 3 munie des points de
contrôle b0 (0, 0), b1 (6, 12), b2 (12, 12), b3 (16, 4).
On insère un nouveau noeud t̂ = 2.
Comme 2 ∈ [t3 , t4 ) alors s = 3
On applique l’algorithme de Boehm, on aura :
t̂−t2 2−0 2
α2 = t4 −t2
= 3−0
= 3
t̂−t3 2−1 1
α3 = t4 −t3
= 3−1
= 2
78 CHAPITRE 5. COURBES B-SPLINES
b̂0 = b0 = (0, 0)
b̂1 = b1 = (6, 12)
1 2
b̂2 = (1 − α2 )b1 + α2 b2 = (6, 12) + (12, 12) = (10, 12)
3 3
1 1
b̂3 = (1 − α3 )b2 + α3 b3 = (12, 12) + (16, 4) = (14, 8)
2 2
b̂4 = b3 = (16, 4)
Chapitre 6
Les B-splines rationnelles figurent parmi les outils les plus complets et les
plus utilisés en modélisation géométrique. Ayant à la fois les avantages des
courbes de Bézier rationnelles mais aussi celles des B-splines, elles peuvent
représenter un large eventail de formes. Les B-splines rationnelles sont obte-
nues par la même technique utilisée pour avoir des courbes de Bézier ration-
nelles à partir de celles intégrales.
Ces courbes sont généralement désignées par l’abréviation (NURBS) pour :
Non Uniform Rational B-Splines.
6.1 Définition
Définition 6.1
Un vecteur nodal (t0 , t1 , · · · , tm ) est dit uniforme si ti+1 = ti + h. Un vecteur
nodal qui ne vérifie pas cette propriété est dit : vecteur nodal non-uniforme.
Une courbe NURBS possède un vecteur nodal non-uniforme.
Définition 6.2
Une courbe NURBS de degré d munie des points de contrôle b0 , · · · , bn , des
poids w0 , · · · , wn et du vecteur nodal (t0 , · · · , tm ) est la courbe définie sur
l’intervalle [a, b] = [td , tm−d ] donnée par [3],[5],[6] :
Pn
wi bi Ni,d (t)
B(t) = Pi=0 n
i=0 wi Ni,d (t)
où les Ni,d (t) sont les fonctions de base des B-splines et avec wi bi remplacé
par bi si wi = 0
79
80 CHAPITRE 6. B-SPLINE RATIONNELLES NON UNIFORMES
1.5
b2 b1
1
0.5
0 b3 b0=b6
-0.5
-1 b4 b5
-1.5
-2
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Remarque 15
La courbe peut être réécrite sous la forme :
n
X wi Ni,d (t)
B(t) = bi Ri,d (t) ,avec Ri,d (t) = Pn
i=0 j=0 wj Nj,d (t)
Les Ri,d (t) sont dites fonctions de base des B-splines rationnelles.
Remarque 16
(wi xi , wi yi , wi zi ) si wi 6= 0
Soit bi = (xi , yi , zi ) et b̂i = ses coordonnées
(xi , yi , zi , 0) si wi = 0
homogènes.
Alors, comme dans le cas des courbes de Bézier, la courbe NURBS est
exprimée en coordonnées homogènes par :
n
X
B(t) = b̂i Ni,d (t)
i=0
exemple 6.1
une courbe NURBS défnie par le vecteur nodal (0, 0, 0, 41 , 41 , 21 , 21 , 34 , 1, 1, 1) et
munie des points de contrôle (1, 1), (−1, 1), (−1, 0), (−1, −1), (1, −1),
(1, 0), (1, 1) ainsi que des poids correspondants : 1, 21 , 21 , 1, 12 , 21 , 1 représente le
cercle unité centré à l’origine comme le montre la figure 6.1
6.2. PROPRIÉTÉS DES COURBES NURBS 81
B(t) ⊂ CH{br−d , · · · , br }
6.2.3 Continuité
Si pi est la multiplicité du point de cassure t = ui , alors B(t) est C d−pi
(ou plus) en t = ui et C ∞ ailleurs.
n
! n
X X
P b̂i Ni,d (t) = P (b̂i )Ni,d (t)
i=0 i=0
n
!
X
B(t)M = b̂i Ni,d (t) ·M
i=0
n
X
= (b̂i M )Ni,d (t)
i=0
Xn
= ĉi Ni,d (t)
i=0
Procédure :
αij t−ti
= ti+d−j+1 −ti
wij = (1 − αij )wi−1j−1
+ αij wij−1
wj bj = (1 − αj )wj−1 bj−1 + αj wj−1 bj−1 pour : j > 0
i i i i−1 i−1 i i i
pour : i = 0, · · · , d ;
j = r − d + i, · · · , r
et où : b0i = bi et wi0 = wi
Sortie :les points de la courbe NURBS B(t) = ddr (t) pour t ∈ [tr , tr+1 [
6.3. ALGORITHME DE DE BOOR POUR LE CAS RATIONNEL 83
exemple 6.2
Soit B(t) une courbe NURBS de degré 3 définie sur le vecteur nodal t0 =
1.2, t1 = 1.4, t2 = 1.5, t3 = 2.0, t4 = 2.4, t5 = 3.1, t6 = 5.0, t7 = 6.4, t8 = 7.3 et
munie des points de contrôle b0 (2, 1), b1 (4, 8), b2 (5, −1), b3 (3, −2), b4 (2, −4) et
des poids correspondants :w0 = 1.0, w1 = 1.5, w2 = 2.0, w3 = 1.5, w4 = 1.0
Supposons qu’on veuille calculer B(2.7) le point de la courbe correspon-
dant à t = 2.7.
Comme 2.7 ∈ [t4 , t5 ) il s’en suit que r = 4.
t−t2 2.7−1.5
α21 = t5 −t2
= 3.1−1.5
= 0.75
t−t3 2.7−2.0
α31 = t6 −t3
= 5.0−2.0
= 0.23333
t−t4 2.7−2.4
α41 = t7 −t4
= 6.4−2.4
= 0.075
t−t3 2.7−2.0
α32 = t5 −t3
= 3.1−2.0
= 0.63636
t−t4 2.7−2.4
α42 = t6 −t4
= 5.0−2.4
= 0.11538
84 CHAPITRE 6. B-SPLINE RATIONNELLES NON UNIFORMES
t − t4 2.7 − 2.4
α43 = = = 0.42857
t5 − t4 3.1 − 2.4
Preuve :
Soit B(t) la courbe B-spline rationnelle définie par :
Pn
wi bi Ni,d (t)
B(t) = Pi=0 n
i=0 wi Ni,d (t)
r
(r)
X r
f (t) = B (j) (t)g (r−j) (t)
j=0
j
r−1
(r)
X r
= g(t)B (t) + B (j) (t)g (r−j) (t)
j=0
j
Finallement, on aura :
Pr−1 r
f (r) (t) − B (t)g (r−j) (t)
j
j=0 j
B (r) (t) =
g(t)
86 CHAPITRE 6. B-SPLINE RATIONNELLES NON UNIFORMES
Conclusion
Les courbes de Bézier ont parcouru bien du chemin depuis leur création
dans les années soixantes.
Profitant des formidables avancées technologiques, particulièrement dans le
domaine de l’informatique, elles interviennent aujourd’hui dans des domaines
diverses et variés.
Elles constituent l’outil de base du dessin vectoriel qui repose sur la trans-
cription mathématique des objets.
De ce fait, on les retrouve dans presque tous les logiciels de dessin vectoriel
comme Paint, JpicEdit, Inkscape...etc
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, Me-
tafont et Gimp.
les courbes de Bézier sont également utilisées dans le rendu de fontes, les
différentes lettres étant des définies par des courbes de Bézier.
Les courbes de Bézier ainsi que leurs généralisations, les B-splines, définissent
les surfaces de Bézier et les surfaces NURBS très utiles pour modéliser des
formes en 3D.
Celles-çi trouvent leurs applications aussi bien dans l’industrie pour la création
de nouveaux objets que dans la réalité virtuelle dans des domaines aussi variés
que la médecine, les jeux vidéos ou encore les effets visuelles au cinéma.
87
88 CHAPITRE 6. B-SPLINE RATIONNELLES NON UNIFORMES
[1] Duncan Marsh. Applied geometry for computer graphics and CAD.
Springer-Verlag, Londres, 2005.
[2] David Salomon. Curves and Surfaces for Computer Graphics. Springer-
Verlag, Etats-unies, 2006.
[3] Les Piegel and Wayne Tiller. The NURBS book. Springer-Verlag, Etats-
unies, 1996.
[4] Michael E.Mortenson. Geometric Modeling. Wiley Computer Publi-
shing, Etats-unies, 1996.
[5] Gerald Farin. Curves and Surfaces for Computer-Aided Geometric De-
sign,Fifth edition. Academic Press, Etats-unies, 2002.
[6] David F. Rogers. An Introduction to NURBS. Academic Press, Etats-
unies, 2001.
[7] Max K. Agoston. Computer Graphics and Geometric Modeling.
Springer-Verlag, Londres, 2005.
[8] Hartmut Prautzsch, Wolfgang Boehm, and Marco Paluszny. Bezier and
b-spline techniques. Technical report, 2002.
[9] Boehm and Prautzsch. The insertion algorithm. Computer-Aided De-
sign, 17(2) :58–59, 1985.
[10] Do Carmo. Differential Geometry of Curves and Surfaces. Prentice-hall,
1976.
[11] Gibson. Elementary Geometry of Algebraic Curves. Cambridge Univer-
sity Press, 1998.
[12] Lasser D Hoschek J. Fundamentals of Computer Aided Geometric De-
sign. A K Peters, 1993.
[13] Adams J A Rogers D F. Mathematical Elements for Computer Graphics.
McGraw-hill, 1990.
[14] Anderson Sederberg and Goldman. Implicit representation of parametric
curves and surfaces. Computer Vision, Graphics and Image Processing,
28 :72–84, 1984.
91
92 BIBLIOGRAPHIE
[15] Shumaker L. Spline functions : Basic Theory. John Wiley, New York,
1981.
[16] Lee E. Rational bezier representations for conics. Geometric Modeling,
pages 3–27, 1986.
[17] Philip J. Davis. Interpolation and Approximation. Dover Publications,
New York, 1975.
[18] DeBoor Carl. On calculating with b-splines. Journal of Approximation
Theory, 6 :50–62, 1972.
[19] Gerald Farin. NURBS : From Projective Geometry to Practical
Use,Second edition. AK Peters, Etats-unies, 1999.
Université d’ORAN
Faculté des Sciences
Département de Mathématiques
Résumé