Cours de mathématiques
Chapitre 17
Courbes B-splines
Uneourbede Bézierest totalement modiéedès qu'ondéplaeun point de ontrle :on
dit quela méthode de Bézierest une méthode globale.
LesCourbesB-Splines 1
ontétédéniesdanslesannées70àtraversunalgorithmeeae
ar pyramidal (analogue à elui de De Casteljau) pour remédier à l'inonvénient de la
globalité : le déplaement d'un point de ontrle de laourbe n'aete ainsi plus qu'une
partielimitéede laourbe,equiamèneunplusgrandonfortdanslaoneptionassistée
par ordinateur.
La méthode B-Splineest don une méthode loale.
Aymar de Saint-Seine Année scolaire 2011–2012
1. spline sepronone[splain℄,equiledistinguedespleen[spli:n℄(Wikipedia)
1.
Courbes B-Splines (Modèle de Riesenfeld, degré 2)
1.1.
Nature du problème
On donne
4
pointsP 0
,P 1
,P 2
etP 3
.On veut obenir deux ars de ourbes
C 0
etC 1
.C 0
a pour représentation :− − − − − − − −→
OM 0 ( t ) = R 0 ( t ) − OP − − − − −→ 0 + R 1 ( t ) − OP − − − − −→ 1 + R 2 ( t ) − OP − − − − −→ 2
.C 1
a pour représentation :− − − − − − − −→
OM 1 (t) = R 0 (t) − OP − − − − −→ 1 + R 1 (t) − OP − − − − −→ 2 + R 2 (t) − OP − − − − −→ 3
.R 0
,R 1
etR 2
sont des polynmesde degré2
ett
est dans l'intervalle[0; 1]
.On impose lesontraintes suivantes :
1
. Les ourbesC 0
etC 1
ne dépendent pas du repère hoisi.tradution :
M 0
est le baryentre de(P 0 , R 0 ) (P 1 , R 1 ) (P 2 , R 2 )
soitR 0 ( t ) + R 1 ( t ) + R 2 ( t ) = 1
(en partiulier pourt = 0) 2
. Les ourbesC 0
etC 1
se raordent.tradution :
− − − − − − − −→
OM 0 (1) = − OM − − − − − − −→ 1 (0)
soitR 0 (1) − OP − − − − −→ 0 + R 1 (1) − OP − − − − −→ 1 + R 2 (1) − OP − − − − −→ 2 = R 0 (0) − OP − − − − −→ 1 + R 1 (0) − OP − − − − −→ 2 + R 2 (0) − OP − − − − −→ 3
Après identiationdes oeients des veteurs, on obtient:
R 0 (1) = 0 ; R 1 (1) = R 0 (0) ; R 2 (1) = R 1 (0) ; R 2 (1) = 0 . 3
. Les ourbesC 0
etC 1
ont mêmetangenteau pointde raordement.tradution :
− − − − − − − −→
OM 0 (1) ′
= − − − − − − − −→
OM 1 (0) ′
soit
R ′ 0 (1) − OP − − − − −→ 0 + R ′ 1 (1) − OP − − − − −→ 1 + R ′ 2 (1) − OP − − − − −→ 2 = R ′ 0 (0) − OP − − − − −→ 1 + R 1 ′ (0) − OP − − − − −→ 2 + R ′ 2 (0) − OP − − − − −→ 3
Après identiationdes oeients des veteurs, on obtient:
R ′ 0 (1) = 0 ; R ′ 1 (1) = R ′ 0 (0) ; R ′ 2 (1) = R 1 ′ (0) ; R ′ 2 (1) = 0.
Les polynmes
R i
étantde degré deux, ona :
R 0 (t) = a 0 t 2 + b 0 t + c 0 R 1 (t) = a 1 t 2 + b 1 t + c 1 R 2 ( t ) = a 2 t 2 + b 2 t + c 2
et par suite
R ′ 0 (t) = 2a 0 t + b 0 R ′ 1 (t) = 2a 1 t + b 1 R ′ 2 ( t ) = 2 a 2 t + b 2
En érivant les ontraintes i-dessus, on obtient un système de neuf équations à neuf
inonnues :
c 0 + c 1 + c 2 = 1 ;
a 0 + b 0 + c 0 = 0 ; a 0 + b 1 + c 1 = c 0 ; a 2 + b 2 + c 2 = c 1 ; c 2 = 0 ; 2a 0 + b 0 = 0 ; 2a 1 + b 1 = b 0 ; 2a 2 + b 2 = b 1 ; b 2 = 0.
En résolvant e système,on obtient :
R 0 (t) = t 2
2 − t + 1
2 ; R 1 (t) = − t 2 + t + 1
2
etR 2 (t) = t 2
2 .
Un exemple de traé de ourbe en présenté plus loin.
Définition 1 :
La ourbe formée par
C 0
etC 1
est la ourbe B-Spline obtenue ave4
points dedénition
P 0
,P 1
,P 2
etP 3
et les3
polynmesdeRiesenfelddu seonddegré.Onlesnote
R 0,2 (t); R 1,2 (t)
etR 2,2 (t).
1.2.
Ajout d'un point de dénition (degré 3)
Ajoutons
P 4
aux4
points préédents. On a alors deux possibilités: Soit on ajoute un ar :On obtient alors trois ars
C 0
,C 1
etC 2
;C 2
ayant pour points de dénitionP 2
,P 3
etP 4
assoiés aux mêmes polynmes
R 0,2
,R 1,2
etR 2,2
.Si ondéplae
P 0
, seul l'arC 0
est modié.C 1
etC 2
restentxes.Si ondéplae
P 1
, lesarsC 0
etC 1
sont modiés.C 2
restent xes.Le aratère loal voulu est bien obtenu.
Soit on augmente le nombre de points de dénition pour haun des ars :
Ave 5points de dénition, onpeut dénir
2
arsG 0
etG 1
dénis haun par4
pointsdedénition assoiés à 4 polynmes du troisièmedegré.
Pour
G 0 : − OM − − − − − − −→ 0 (t) = Q 0 (t) − OP − − − − −→ 0 + Q 1 (t) − OP − − − − −→ 1 + Q 2 (t) − OP − − − − −→ 2 + Q 3 (t) − OP − − − − −→ 3
.Pour
G 1 : − OM − − − − − − −→ 1 (t) = Q 0 (t) − OP − − − − −→ 1 + Q 1 (t) − OP − − − − −→ 2 + Q 2 (t) − OP − − − − −→ 3 + Q 3 (t) − OP − − − − −→ 4
.ave
Q 0
,Q 1
,Q 2
etQ 3
polynmesdu troisièmedegré.En opérantde façonsimilaireà e qui a été fait en début de hapitre, ontrouve :
Q 0 (t) = − t 6 3 + t 2 2 − 2 t + 1 6 Q 1 ( t ) = t 2 3 − t 2 + 2 3 Q 2 (t) = − t 2 3 + t 2 2 + 2 t + 1 6 Q 3 ( t ) = t 6 3
Définition 2 : polynômes de Riesenfeld
Les polynmestrouvés sont dits polynmes de Riesenfeld de degré
3
.On les note
R 0,3 ( t ); R 1,3 ( t ); R 2,3 ( t )
etR 3,3 ( t ) .
Plus généralement, le i-ème polynme de Riesenfeld de degré
n
est alulé ave laformule :
R i,n (t) = (n + 1)
n−i
X
j=0
( − 1) j (t + n − i − j) n
j!(n + 1 − j)!
1.3.
Exemple
On onsidère lespointsde ontrle
P 0 (1; 2)
,P 1 (2; 0)
,P 2 (3; 4)
etP 3 (4; 1)
.Courbe B-spline (Modèle de Rieseneld de degré 2)
C 0
a pour représentation :− − − − − − − −→
OM 0 (t) = R 0,2 (t) − OP − − − − −→ 0 + R 1,2 (t) − OP − − − − −→ 1 + R 2,2 (t) − OP − − − − −→ 2
= ( t 2
2 − t + 1 2 )
1 2
+ ( − t 2 + t + 1 2 )
2 0
+ t 2
2 3
4
=
t + 3 2 3t 2 − 2t + 1
C 1
a pour représentation :− − − − − − − −→
OM 1 ( t ) = R 0,2 ( t ) − OP − − − − −→ 1 + R 1,2 ( t ) − OP − − − − −→ 2 + R 2,2 ( t ) − OP − − − − −→ 3
= ( t 2
2 − t + 1 2 )
2 0
+ ( − t 2 + t + 1 2 )
3 4
+ t 2
2 4
1
=
t + 5 2
− 7t 2 2 + 4t + 2
Tableaudes variationsonjointes :
t x ′ 0 (t)
x 0 (t)
y 0 ( t )
y 0 ′ (t)
0 1 3 1
+
3 2 3 2
5 2 5 2 1 3
11 6
11
2 3 2 3
22
− 0 +
t x ′ 1 (t)
x 1 (t)
y 1 ( t )
y 1 ′ (t)
0 4 7 1
+
5 2 5 2
7 2 7 2 4 7
43 14
22
22 7 22
7
5 2 5 2
+ 0 −
Traé de laourbe :
1 2 3 4
1 2 3 4 5
b b b
P 0
P 1 P 2
P 3
Remarques :
1
.x 0 (t) = t + 3 2
y 0 (t) = 3t 2 − 2t + 1
dont = x 0 − 3 2
y 0 = 3(x 0 − 3 2 ) 2 − 2(x 0 − 3 2 ) + 1 = 3x 2 0 − 11x 0 + 43 4
C'est l'équation d'uneparabole.
2
. La ourbe B-Spline ne passe pas par lespoints de dénition.3
.C 0
est la ourbe de Bézier de points de ontrleM 0 (0)
,P 1
etM 0 (1)
etC 1
est la ourbe de Bézier de points de ontrleM 1 (0)
,P 2
etM 1 (1)
. (Admis et seulementvrai pour le degré
2
, voirla setion3 sur le lienentre les modèles en n de ours.)En ajoutant le point
P 4 (1; 2)
aux points dénis préédemment.Soit on ajoute un ar : B-spline Riesenfeld de degré 2
C 2
a pour représentation :− − − − − − − −→
OM 2 (t) = R 0,2 (t) − OP − − − − −→ 2 + R 1,2 (t) − OP − − − − −→ 3 + R 2,2 (t) − OP − − − − −→ 4
= ( t 2
2 − t + 1 2 )
3 4
+ ( − t 2 + t + 1 2 )
4 1
+ t 2
2 1
2
=
−4t 2 +2t+7
4t 2 −6t+5 2 2
Traé de laourbe :
1 2 3 4
1 2 3 4 5
b b b
P 0
P 1 P 2
P 3
Soit on augmente le nombre de points de dénition pour haun des ars :
B-spline Riesenfeld de degré 3
C 0
a pour représentation :− − − − − − − −→
OM 0 (t) = R 0,3 (t) − OP − − − − −→ 0 + R 1,3 (t) − OP − − − − −→ 1 + R 2,3 (t) − OP − − − − −→ 2 + R 3,3 (t) − OP − − − − −→ 3
= ( − t 3 6 + t 2
2 − t 2 + 1
6 ) 1
2
+ ( t 3
2 − t 2 + 2 3 )
2 0
+ ( − t 3 2 + t 2
2 + t 2 + 1
6 ) 3
4
+ t 3 6
4 1
=
t + 2
−13t 3 +18t 2 +6t+6 6
C 1
a pour représentation :− − − − − − − −→
OM 1 ( t ) = R 0,3 ( t ) − OP − − − − −→ 1 + R 1,3 ( t ) − OP − − − − −→ 2 + R 2,3 ( t ) − OP − − − − −→ 3 + R 3,3 ( t ) − OP − − − − −→ 4
= ( − t 3 6 + t 2
2 − t 2 + 1
6 ) 2
0
+ ( t 3
2 − t 2 + 2 3 )
3 4
+ ( − t 3 2 + t 2
2 + t 2 + 1
6 ) 4
1
+ t 3 6
1 2
=
−2t 3 +3t+9
11t 3 −21t 3 2 +3t+17 6
Traé de laourbe :
1 2 3 4
1 2 3 4 5
b b b
P 0
P 1 P 2
P 3
Remarque : On remarque que si les ourbes de degré 3 permettent de traer un point
doubleouunpointderebroussement,elleaugmenteependantlesvariationsdelaourbe.
On préfèreainsi utiliserautantque possible lespolynmesde Riesenfeldde degré 2.
2.
Courbes B-Splines (Modèle de Cox et de de Boor)
2.1.
Fontions B-splines
Définition 3 : Vecteur Noeud
On appelleveteur-n÷ud une suited'entiers naturels
(t 0 ; t 1 ; · · · ; t k )
telsque :t 0 = 0
etsoit
t i+1 = t i + 1 ;
soit
t i+1 = t i .
Chaque nombre
t i
est un n÷ud.Exemples :
(0 ; 1 ; 2 ; 3 ; 4)
est un veteur n÷ud sans répétition (n÷ud simple).(0 ; 0 ; 0 ; 1 ; 2 ; 3 ; 3)
. On peut avoir des n÷uds multiples.0
est un n÷ud tripleet
3
est double.(1 , 2 , 2 , 3)
n'est pas un veteur-n÷ud art 0 6 = 0
.(0, 1, 1, 3, 4)
n'est pas un veteur-n÷ud art 3 = t 2 + 2
.Définition 4 : Fonctions B-Splines
Le veteur-n÷ud
(t 0 ; t 1 ; · · · ; t k )
étant hoisis, les fontion Splines ou B-SplinesN (i,m)
de degrém
assoiés à e veteur n÷ud sont dénies sur R par :N (i,0) (t) =
1
sit i 6 t < t i+1 ; 0
sinon.et pour
m = 1; 2; 3 · · · : N (i,m) (t) = t − t i
t i+m − t i N (i,m −1) (t)+ t i+m+1 − t
t i+m+1 − t i+1 N (i+1,m −1) (t)
Paronvention, siundes dénominateursestnul,onannuleletermeorrespondant.
Remarque : La dénition des fontions B-splines pour
m = 0
implique que toutes lesfontions B-splines sont nulles sur
] − ∞ ; 0]
et sur[
dernier noeud; + ∞ [
.C'estunedénitionréursiveàdoubleindiequiimposeunalultriangulairedéroissant.
Dans la pratique, on inverse le proédé et on alule le maximum de fontions B-spline
pour
m = 0
avant de faire elle pourm = 1
et ainsi de suite dans l'ordre roissant dem
.(voirl'exemple i-dessous pour mieux omprendre).
Exemple : Soit le n÷ud
(0 ; 1 ; 2 ; 3)
.On a
t 0 = 0
,t 1 = 1
,t 2 = 2
ett 3 = 3 .
Déterminons lesfontions B-Splines assoiées à e n÷ud:
• m = 0
(Degré0
):i = 0 N 0,0 (t) =
1
si0 6 t < 1 ; 0
sinon.1
− 1 1 2 3 4 5
− 1
− 2
b b
i = 1 N 1,0 (t) =
1
si1 6 t < 2 ; 0
sinon.1
− 1 1 2 3 4 5
− 1
− 2
b b
i = 2 N 2,0 (t) =
1
si2 6 t < 3 ; 0
sinon.1
− 1 1 2 3 4 5
− 1
− 2
b b
i > 3
Pour déterminer
N 3,0 ( t )
,il fautonnaitret 4
qui n'existe pas. Leproblème est similairepour
N 4,0 (t)
,· · ·
Pour e veteur noeud, iln'y a don que trois fontionsB-splinesde degré 0,
N 0,0 (t)
,N 1,0 (t)
etN 2,0 (t)
.• m = 1
(Degré 1):
N (0,1) (t) = t − t 0
t 1 − t 0 N (0,0) (t) + t 2 − t
t 2 − t 1 N (1,0) (t) = t × N (0,0) (t) + (2 − t) × N (1,0) (t) N (1,1) (t) = t − t 1
t 2 − t 1 N (1,0) (t) + t 3 − t
t 3 − t 2 N (2,0) (t) = (t − 1) × N (1,0) (t) + (3 − t) × N (2,0) (t) N (2,1) (t) = t − t 2
t 3 − t 2 N (2,0) (t) + t 4 − t
t 4 − t 3 N (3,0) (t) · · ·
mais onne onnaitnit 4
, niN (3,0) (t).
Pour e veteur noeud, il n'y aque deux fontions B-splines de degré1
t N (0,0) (t) N (1,0) ( t ) N (0,1) (t)
0 1 2
0 1 0 0
0 0 1 0
0 t 2-t 0
t N (1,0) (t) N (2,0) ( t ) N (1,1) (t)
1 2 3
0 1 0 0
0 0 1 0
0 t-1 3-t 0
1
− 1 1 2 3 4 5
− 1
− 2
1
− 1 1 2 3 4 5
− 1
− 2
• m = 2
(Degré 2):
N (0,2) (t) = t − t 0
t 2 − t 0 N (0,1) (t) + t 3 − t
t 3 − t 1 N (1,1) (t) = t
2 × N (0,1) (t) + 3 − t
2 × N (1,1) (t)
Le alul de
N (1,2)
faitintervenirt i+m+1 = t 1+2+1 = t 4
etN (2,1)
qui n'existent pas.Pour e veteur noeud, il n'y aqu'une fontion B-spline de degré
2
.t
N (0,1) (t) N (1,1) (t) N (0,2) (t)
0 1 2 3
0 t 2 − t 0 0
0 0 t − 1 3 − t 0
0 t 2 2 − t 2 + 3 t − 3 2 (3− 2 t) 2 0
1
− 1 1 2 3 4 5
•
Pour e veteur noeud, il n'ya pas de fontion B-spline de degré 3.2.2.
Courbes B-splines
Définition 5 : B-Splines, modèles de Cox et de de Boor
On dénit une ourbe B-Spline assoiée à
n + 1
points de ontrleP 0
,P 1
,· · · P n
de la façon suivante :
− − − − − − − →
OM =
i=n
X
i=0
N (i,m) − OP − − − − − → i .
ave
N (i,m)
de degrém
qui dépend du veteur n÷ud hoisi.Exemple : On hoisit leveteur n÷ud
(0 ; 0 ; 0 ; 1 ; 2 ; 3 ; 3 ; 3)
.On prendles 5pointsde ontrle
P 0 (1; 0)
,P 1 (4; 2)
,P 2 (2; 4)
,P 3 (0; 4)
etP 4 ( − 4; 4)
.Les 5fontions de B-Splines de degré
2
sont :t
N (0,2) (t) N (1,2) (t) N (2,2) (t) N (3,2) (t) N (4,2) ( t )
−∞ 0 1 2 3 + ∞
0 (1 − t) 0 0 0
0 1 2 t(4 − 3t) 1 2 (t − 2) 2 0 0
0 t 2 2 − t 2 + 3t − 3 2 (t −3) 2 2 0
0 0 1 2 (t − 1) 2 1 2 (3 − t)(3t − 5) 0
0 0 0 (t − 2) 0
La ourbe B-Spline assoiées àe veteur-n÷ud et es points de ontrle est :
− − − − − − − →
OM =
i=4
X
i=0
N (i,2)
− − − − − − →
OP i .
•
sur] − ∞ ; 0]
et sur[3 ; + ∞ [
,la ourbe B-Spline est nulle.•
sur[0; 1]
:− − − − − − − →
OM (t) = N (0,2)
− − − − − −→
OP 0 + N (1,2)
− − − − − −→
OP 1 + N (2,2)
− − − − − −→
OP 2 + N (3,2)
− − − − − −→
OP 3 + N (4,2)
− − − − − −→
OP 4
= (t 2 − 2t + 1) × 1
0
+ ( − 3t 2
2 + 2t) × 4
2
+ t 2 2 ×
2 4
+ 0 × 0
4
+ 0 × − 4
4
=
− 4 t 2 + 6 t + 1
− t 2 + 4 t
•
sur[1; 2]
:− − − − − − − →
OM ( t ) = N (0,2)
− − − − − −→
OP 0 + N (1,2)
− − − − − −→
OP 1 + N (2,2)
− − − − − −→
OP 2 + N (3,2)
− − − − − −→
OP 3 + + N (4,2)
− − − − − −→
OP 4
= 0 × 1
0
+ ( t 2
2 − 2 t + 2) × 4
2
+ ( − t 2 + 3 t − 3 2 ) ×
2 4
+ · · ·
· · · ( t 2
2 − t + 1 2 ) ×
0 4
+ 0 ×
− 4 4
=
− 2t + 5
− t 2 + 4t
•
sur[2; 3]
:− − − − − − − →
OM (t) = N (0,2) − OP − − − − −→ 0 + N (1,2) − OP − − − − −→ 1 + N (2,2) − OP − − − − −→ 2 + N (3,2) − OP − − − − −→ 3 + + N (4,2) − OP − − − − −→ 4
= 0 × 1
0
+ 0 × 4
2
+ ( t 2
2 − 3t + 9 2 ) ×
2 4
+ · · ·
· · · ( − 3 t 2
2 + 7 t − 15 2 ) ×
0 4
+ ( t 2 − 4 t + 4) × − 4
4
=
− 3t 2 + 10t − 7 4
La ourbe B-Spline est obtenue en traant haundes trois moreauxde parabole.
1 2 3 4
1 2 3 4
− 1
− 2
− 3
− 4
− 5
P 0
P 1 P 2
P 3 P 4
b b
b
b
b
Remarques :
•
Longueur du veteur noeud à hoisir :Sil'ona5pointsde ontrleetquel'onsouhaiteuneourbeB-splines de degré2,alors
il faut déterminer les fontions B-splines
N (0,2)
,N (1,2)
,· · ·
,N (4,2)
. Le alul de ettedernière fontion fait intervenir le noeud
t i+m+1 = t 4+2+1 = t 7
e qui implique que leveteurnoeud hoisis doit être au moinsde longueur
i + m + 2 = 8
(det 0
àt 7
).Plus généralement,pour aluler
N (i,m)
,ilfautun veteurnoeud de longueur aumoinsi + m + 2
et pour une ourbe B-spline il faut un veteur noeud de longueur au moinsnbre points + degré + 1.
•
Caratère loal :Ledénitionréursivede
N (i,m)
impliquequeettefontionestnullesaufsur[ t i ; t i+m+1 ]
.Enonséquene, siondéplae
P i
onne modie quelapartiede laourbe pour laquellet ∈ [t i ; t i+m+1 ]
dononabienunemodiationloalede laourbe.Plus généralement,siledegrédes fontionsB-splines est
m
alors ledéplaementd'unpointnemodiequem + 1
segmentsde laourbe.•
N÷ud multiple :L'insertion de n÷ud permet d'introduire plus de dégrés de liberté dans la ourbe.
Chaque n÷ud inséré représente un point de ontrle supplementaire. L'insertion de
n÷ud oredon plus de exibilitépour ledesign des ourbesde B-spline.
3.
Lien entre les modèles
3.1.
Courbes de Bezier et polynmes de Riesenfeld
Théorème 1 (admis) :
la ourbe de Bézier dont les points de ontrle sont
P 1
,P 2
,P 3
etP 4
est en fait laourbe B-spline (modèle de Riesenfeld) de degré 3 dont les points de ontrle
P 1 ′
,P 2 ′
,P 3 ′
etP 4 ′
sont alulésde la manière suivante. Si lesoordonnées des pointsP 1
,P 2
,P 3
etP 4
sont(x 1 ; y 1 )
,(x 2 ; y 2 )
,(x 3 ; y 3 )
et(x 4 ; y 4 )
, alorslesoordonnées(x ′ 1 ; y 1 ′ )
,(x ′ 2 ; y 2 ′ )
,(x ′ 3 ; y 3 ′ )
et(x ′ 4 ; y 4 ′ )
des pointsP 1 ′
,P 2 ′
,P 3 ′
etP 4 ′
sontdonnéespar lesformulessuivantespourlespremièresoordonnées etdesformules similaires pourlaseonde.
Passage de Bezierà Riesenfeld :
x ′ 1 = 6x 1 − 7x 2 + 2x 3
x ′ 2 = 2x 2 − x 3 x ′ 3 = − x 2 + 2x 3
x ′ 4 = 2x 2 − 7x 3 + 6x 4
Passage de Riesenfeldà Bezier:
x 1 = 1
6 (x ′ 1 + 4x ′ 2 + x ′ 3 ) x 2 = 1
6 (4x ′ 2 + 2x ′ 3 ) x 3 = 1
6 (2 x ′ 2 + 4 x ′ 3 ) x 4 = 1
6 ( x ′ 2 + 4 x ′ 3 + x ′ 4 )
Exemple:Ononsidèrelesquatrepointsdeontrle
P 0 (0; 0)
,P 1 (1; 2)
,P 2 (2; 0)
etP 3 ( − 1; 0)
.Courbe de Béziers
Il y a quatre pointsde ontrle don onutilise les polynmes de Berstein de degré3.
− − − − − − − →
OM ( t ) =
i=3
X
i=0
B i,3 ( t ) − OP − − − − − → i
= B 0,3 (t) − OP − − − − −→ 0 + B 1,3 (t) − OP − − − − −→ 1 + B 2,3 (t) − OP − − − − −→ 2 + B 3,3 (t) − OP − − − − −→ 3
= (1 − 3t + 3t 2 + t 3 ) 0
0
+ (3t − 6t 2 + 3t 3 ) 1
2
+ (3t 2 − 3t 3 ) 2
0
+ (t 3 ) − 1
0
=
− 4 t 3 + 3 t 6t 3 − 12t 2 + 6t
Courbe B-spline (modèle de Riesenfeld)
Les points de ontrle de la ourbe B-spline ont pour oordonnées :
x ′ 1 = 6x 1 − 7x 2 + 2x 3 = − 3 x ′ 2 = 2x 2 − x 3 = 0
x ′ 3 = − x 2 + 2x 3 = 3
x ′ 4 = 2x 2 − 7x 3 + 6x 4 = − 18
y ′ 1 = 6y 1 − 7y 2 + 2y 3 = − 14 y ′ 2 = 2y 2 − y 3 = 4
y ′ 3 = − y 2 + 2y 3 = − 2 y ′ 4 = 2y 2 − 7y 3 + 6y 4 = 4
LaourbeB-spline(modèledeRiesenfeld)orrespondantauxpointsdeontrole
P 0 ( − 3; − 14)
,P 1 (0; 4)
,P 2 (3; − 2)
etP 3 ( − 18; 4)
a pour équation− − − − − − − →
OM (t) = R 0,3 (t) − OP − − − − −→ 0 + R 1,3 (t) − OP − − − − −→ 1 + R 2,3 (t) − OP − − − − −→ 2 + R 3,3 (t) − OP − − − − −→ 3
= ( − t 3 6 + t 2
2 − t 2 + 1
6 ) − 3
− 14
+ ( t 3
2 − t 2 + 2 3 )
0 4
+ · · ·
· · · + ( − t 3 2 + t 2
2 + t 2 + 1
6 ) 3
− 2
+ ( t 3 6 )
− 18 4
=
− 4t 3 + 3t 6 t 3 − 12 t 2 + 6 t
Les équations sont bien identiques don lesourbes sont bien les mêmes.
3.2.
Fontion B-Splines et polynmes de Riesenfeld
Théorème 2 (admis) :
On démontre que lorsque les n÷uds sont simples, on retrouve la dénition donnée
à l'aide des polynmes de Riesenfeld.
Exemple : On onsidère leveteur n÷ud
(0 ; 1 ; 2 ; 3 ; 4 ; 5)
.Les fontions B-Splinesde degré
2
sont alors :t [0; 1[ [1; 2[ [2; 3[ [3; 4[ [4; 5[
N (0,2) 1 2 t 2 − t 2 + 3t − 3 2 1 2 (t − 3) 2 0 0
N (1,2) 0 1 2 (t − 1) 2 − t 2 + 5t − 11 2 1 2 (t − 4) 2 0
N (2,2) 0 0 1 2 ( t − 2) 2 − t 2 + 7 t − 23 2 1 2 ( t − 5) 2
Seul le as de
N (0,2) ( t )
est détaillé.PourN (1,2) ( t )
etN (2,2) ( t )
lesaluls sontsimilaires.On a
N (0,2) (t) =
t 2
2
pourt ∈ [0; 1[
− t 2 + 3t − 3 2
pourt ∈ [1; 2[
(3−t) 2
2
pourt ∈ [2; 3[
On pose
t = 1 − u
. Pourt ∈ [0; 1[
,on au ∈ [0; 1[
etN (0,2) (1 − u ) = (1 − 2 u) 2 = u 2 2 − u + 1 2
.Onpose
t = 2 − u
.Pourt ∈ [1; 2[
,onau ∈ [0; 1[
etN (0,2) (2 − u) = − (2 − u) 2 +3(2 − u) − 3 2 =
− u 2 + u + 1 2
.On pose
t = 3 − u
. Pourt ∈ [2; 3[
,on au ∈ [0; 1[
etN (0,2) (3 − u ) = u 2 2
.On retrouve lespolynomes de Riesenfeldde degré2 :
R 0
,R 1
etR 2
.Attention, onne fait que retrouver les polynmes de Reisenfeld. Cela ne signie pas que
l'on a la mêmeourbe.En eet, on a:
t [0; 1[ [1; 2[ [2; 3[ [3; 4[ [4; 5[
N (0,2) R 0 R 1 R 2 0 0
N (1,2) 0 R 0 R 1 R 2 0
N (2,2) 0 0 R 0 R 1 R 2
don
t [0; 1[ [1; 2[ [2; 3[ [3; 4[ [4; 5[
N (0,2) × P 0 R 0 × P 0 R 1 × P 0 R 2 × P 0 0 0
N (1,2) × P 1 0 R 0 × P 1 R 1 × P 1 R 2 × P 1 0
N (2,2) × P 2 0 0 R 0 × P 2 R 1 × P 2 R 2 × P 2
− − − − −→
OM ( t ) R 0 × P 0 R 1 × P 0 + R 0 × P 1 R 2 × P 0 + R 1 × P 1 + R 0 × P 2 R 2 × P 1 + R 1 × P 2 R 2 × P 2
alors qu'ave Riesenfeld,on a:
− − − − − − − →
OM (t) = R 0 − OP − − − − −→ 0 + R 1 − OP − − − − −→ 1 + R 2 − OP − − − − −→ 2
Remarque: Cerésultat,valable uniquementdansleas de n÷udsimple,permet,àpartir
des polynomesdeRiesenfeld,d'obtenirlesfontionsB-splinessanspasserpar lesformules
réursives.
3.3.
Courbes B-Spline et ourbes de Bezier
Il y a un lien dans ertainsas entre lesourbesB-Splines et lesourbesde Bezier.
On ne verra iiqu'un exemple dans le as
m = 2
. Leas généralest plus ompliqué.On hoisit un veteurn÷uddontlesn÷uds extrêmesontun ordre de multipliitéégale à
m + 1 = 3
.Par exemple, leveteur n÷ud(0 ; 0 ; 0 ; 1 ; 2 ; 3 ; 3 ; 3)
.On hoisit les5 points de ontrle
P 0 (1; 0)
,P 1 (4; 2)
,P 2 (2; 4)
,P 3 (0; 4)
etP 4 ( − 4; 4)
.La ourbe a été dénieet traée préédemment (voirplus haut).
On remarqueque :
•
Pourt = 0
,onaM (0) = P 0
et− − − − − − − → OM ′
(0) = 6
4
= 2 − P − − − − 0 − − P − → 1 .
•
Pourt = 3
,onaM (3) = P 4
et− − − − − − − → OM ′
(3) = − 8
4
= 2 − P − − − − 3 − − P − → 4 .
On retrouve lespropriétés des ourbes de Bézier.
4. Exeries
4.1. Modèle de Riesenfeld
17.1
On onsidère lespolynmes de Rieseneld de degré 2.On onsidère lespoints
P 0 (0; 0)
,P 1 (0; 2)
,P 2 (2; 2)
,P 3 (4; 4)
etP 4 (6; 0)
.1
.a
. Déterminer une représentation paramétrique du premier ar de ourbe déter- miné parP 0
,P 1
etP 2
, soitx = f 0 ( t ) y = g 0 (t)
b
. Déterminerune représentation paramétriquedu deuxièmearde ourbedéter- miné parP 1
,P 2
etP 3
, soitx = f 1 ( t ) y = g 1 ( t )
c
. Déterminerunereprésentationparamétriquedu troisièmearde ourbedéter- miné parP 2
,P 3
etP 4
, soitx = f 2 (t) y = g 2 (t)
2
. Établir lestrois tableauxdes variationsonjointes def 0
etg 0
,puisf 1
etg 1
et ennf 2
etg 2
.3
. Construire les trois ars de ourbe.17.2
On onsidère lespolynmes de Rieseneld de degré 3.On onsidère lespoints
P 0 (0; 0)
,P 1 (0; 2)
,P 2 (2; 2)
,P 3 (4; 4)
etP 4 (6; 0)
.1
.a
. Déterminer une représentation paramétrique du premier ar de ourbe déter- miné parP 0
,P 1
,P 2
etP 3
, soitx = f 0 (t) y = g 0 (t)
b
. Déterminerune représentation paramétriquedu deuxièmearde ourbedéter- miné parP 1
,P 2
,P 3
etP 4
, soitx = f 1 ( t ) y = g 1 (t)
2
. Établir lesdeux tableaux des variationsonjointes def 0
etg 0
, puis def 1
etg 1
.3
. Construire les deux ars de ourbe.4.2.
Modèle de Cox et de de Boor
17.3
On onsidère leveteur-n÷ud(0 ; 1 ; 1 ; 2)
.1
. Déterminer sur l'intervalle[0; 3[
les fontions B-SplinesN (0,0)
,N (1,0)
,N (2,0)
,N (0,1)
,N (1,1)
etN (0,2)
.2
. Pour haune des es fontions :a
. Traer sareprésentation graphique.b
. Préisersi elleest ontinue, dérivable.17.4
On onsidère leveteur n÷ud(0 ; 1 ; 2 ; 3 ; 4 ; 5)
.Les fontions B-Splinesde degré
2
sont alors :t [0; 1[ [1; 2[ [2; 3[ [3; 4[ [4; 5[
N (0,2) 1
2 t 2 − t 2 + 3t − 3 2 1 2 (t − 3) 2 0 0
N (1,2) 0 1 2 (t − 1) 2 − t 2 + 5t − 11 2 1 2 (t − 4) 2 0
N (2,2) 0 0 1 2 (t − 2) 2 − t 2 + 7t − 23 2 1 2 (t − 5) 2
Soit
C
laourbeB-SplinedénieparlestroispointsdeontrleP 0 (1; 2)
,P 1 (3; 0)
,P 2 (1; − 1)
.1
. Donner lareprésentationparamétriquedeC
sur haundes intervalles[0; 1[
;[1; 2[
;[2; 3[
;[3; 4[
et[4; 5[
.2
. Dresser letableau des variationsonjointes dex
ety
sur[0; 5[
.3
. Traer la ourbeC
.17.5
OndonnelespointsdeontrleP 0 (0; 0)
,P 1 (1; 0)
,P 2 (1; 1)
etP 3 (0; 1)
.Soitleveteurn÷ud
(0 ; 0 ; 0 ; 1 ; 2 ; 2 ; 2)
.Les fontions B-Splinesde degré
2
sont alors :t [0; 1[ [1; 2[
N (0,2) ( t − 1) 2 0
N (1,2) − 3 2 t 2 + 2t 1 2 (t − 2) 2
N (2,2) 1
2 t 2 − 3 2 t 2 + 4 t − 2
N (3,2) 0 (t − 1) 2
1
. Donner une représentation paramétrique pourt ∈ [0; 1[
ett ∈ [1; 2[
de la ourbe deB-Spline assoiée aux pointsde ontrle etau veteur-n÷ud donnés i-dessus.
2
. Dresser letableau des variationsonjointes dex
ety
sur[0; 2[
.3
. Traer la ourbeC
.17.6
On onsidère leveteur n÷ud(0 ; 0 ; 0 ; 1 ; 2 ; 3 ; 3 ; 3)
.On donnele tableausuivant :
t [0; 1[ [1; 2[ [2; 3[
N (0,1) 0 0 0
N (1,1) 1 − t 0 0
N (2,1) t 2 − t 0
N (3,1) 0 t − 1 3 − t
N (4,1) 0 0 t − 2
N (0,2) (1 − t) 2 0 0
N (1,2) 1
2 t (4 − 3 t ) 1 2 ( t − 2) 2 0
N (2,2) 1
2 t 2 − t 2 + 3 t − 3 2 1 2 ( t − 3) 2 N (3,2)
N (4,2) 0 0 (t − 2) 2
1
. À l'aide de laformulede réurene dénissantles fontion B-Splines, donnerN (3,2)
sur lesintervalles
[0; 1[
;[1; 2[
et[2; 3[
.2
. Soit les5
pointsP 0 (1; 0)
,P 1 (4; 2)
,P 2 (2; 4)
,P 3 (0; 2)
etP 4 ( − 4; 4)
.a
. Donner une représentation paramétrique de la ourbe de B-Spline de degré2
assoiée aux pointsde ontrle et auveteur-n÷ud donnési-dessus.
b
. Dresser le tableaudes variationsonjointes dex
ety
sur[0; 3[
.c
. Traer la ourbe.d
. Vérier que:• M (1)
estlemilieude[ P 1 P 2 ]
etque( P 1 P 2 )
est tangenteàlaourbeenM (1)
;• M (2)
estlemilieude[ P 2 P 3 ]
etque( P 2 P 3 )
est tangenteàlaourbeenM (2)
;• (P 0 P 1 )
est tangenteà la ourbe enP 0
et(P 3 P 4 )
est tangente àla ourbe enP 4
.3
. On onserve lespointsP 0
,P 1
,P 2
etP 4
et onprendP 3 ′ (0; 6)
à laplae deP 3
.a
. Démontrer quelemoreau de laourbe B-Spline orrespondantàt ∈ [1; 2[
estalors un segment d'une droite dont ondonnera l'équation.
b
. Quel ar de ourbe est inhangépar rapport àelle de laquestion 2.?c
. Faire le tableaudes variations de la représentation paramétrique de laourbe pourt ∈ [2; 3[
.d
. Traer la ourbedans lemême repère.4.3. Annales
17.7
Frane 2009 CPILe plan est muni d'un repère orthonormal
(O; ~
i,~
j)
oùl'unité graphique est 2entimètres.On se propose de onstruire la ourbe B-spline obtenue à partir de quatre points de
dénition
P 1 , P 2 , P 3
etP 4
etde trois polynmes de Riesenfeld du seond degré.Les quatre points sontdonnés par leurs oordonnées dans le repère
(O; ~
i,~
j)
.P 1 (0 ; 3) , P 2 (1 ; − 2) , P 3 (4 ; 3)
etP 4 (2 ; 5) .
La ourbe B-spline herhée est laréunion de deux ars de ourbe
C 1
etC 2
.A. Détermination d'une représentation paramétrique de l'ar de ourbe
C 1 1
. OnrappellequelespolynmesdeRiesenfeldR i
dedegré2,pouri
prenantlesvaleurs0, 1ou 2,sont dénis pour tout
t
appartenant à[0 ; 1]
par :R i (t) = 3
j=2 − i
X
j=0
( − 1) j (t + 2 − i − j) 2 j !(3 − j)! .
Démontrer que, pour tout
t
de[0 ; 1] , R 0 ( t ) = t 2
2 − t + 1 2 . 2
. L'ar de ourbeC 1
est l'ensembledes pointsM 1 ( t )
tels que :− − − − − − − − − − − − − − −→
O
M 1 ( t ) = R 0 ( t ) −
O− − − − P − − − − − 1 − − ( −→ t ) + R 1 ( t ) −
O− − − − P − − − − − 2 − − ( −→ t ) + R 2 ( t ) −
O− − − − − P − − − 3 − − − ( −→ t ) .
On admet que pour tout
t
de[0 ; 1] : R 1 (t) = − t 2 + t + 1
2
etR 2 (t) = 1 2 t 2
.Démontrer que l'ar de ourbe
C 1
est déni par la représentation paramétrique :
x = f 1 (t) = t 2 + t + 1 2 y = g 1 (t) = 5t 2 − 5t + 1
2
où
t
appartient à l'intervalle[0 ; 1].
B. Étude de variations et onstrution de la ourbe B-spline
1
.a
. Étudier les variations des fontionsf 1
etg 1
sur[0 ; 1]
, oùf 1
etg 1
sont lesfontionsdéniesàla question2.de lapartie A.Rassembler lesrésultatsdans
un tableau unique.
b
. Donnerun veteurdireteurde haune des tangentes àl'arde ourbeC 1
auxpoints
M 1 (0) , M 1 1 2
, M 1 (1)
.2
. L'ar de ourbeC 2
est l'ensembledes pointsM 2 (t)
tels que :− − − − − − − − − − − − − − −→
O
M 2 (t) = R 0 (t) −
O− − − − P − − − − − 2 − − (t) + −→ R 1 (t) −
O− − − − P − − − − − 3 − − (t) + −→ R 2 (t) −
O− − − − − P − − − 4 − − − (t). −→
On admet que l'ar de ourbe
C 2
est déni par la représentation paramétrique :
x = f 2 (t) = − 9
2 t 2 + 3t + 5 2 y = g 2 (t) = − 3
2 t 2 + 5t + 1 2
où
t
appartient àl'intervalle[0 ; 1].
Le tableaudes variationsonjointes des fontions
f 2
etg 2
est le suivant :t 0 1 3 1
f 2 ′ (t)
3 + 0− − 6
f 2 ( t )
5 2
3
1
g 2 ′ (t)
5+
2
g 2 (t)
1 2
2
4
Donner un veteur direteur de haune des tangentes à l'ar de ourbe
C 2
auxpoints
C 1
aux pointsM 2 (0), M 2 1 2
, M 2 (1)
.3
. Onrappellequeleplanestmunid'unrepèreorthonormal( O ; ~
i
,~
j)
oùl'unitégraphiqueest 2entimètres.
a
. Construire sur une feuillede papier millimétré,lestangentes àl'ar de ourbeC 1
aux pointsM 1 (0) , M 1 1
2
et
M 1 (1)
,puis l'ar de ourbeC 1
.b
. Construire,surlemêmegraphique,lestangentesàl'ardeourbeC 2
auxpointsM 2 (0), M 2
1 3
, M 2 (1)
, puis l'ar de ourbeC 2
.c
. Plaer lespoints de dénition sur lagure.4
.a
. Donner les oordonnées du pointI
où se raordent les ars de ourbeC 1
etC 2
.b
. Montrer que la tangente ommune à l'arC 1
et à l'arC 2
au pointI
est ladroite