• Aucun résultat trouvé

1. Courbes B-Splines (Modèle de Riesenfeld, degré 2)

N/A
N/A
Protected

Academic year: 2022

Partager "1. Courbes B-Splines (Modèle de Riesenfeld, degré 2)"

Copied!
12
0
0

Texte intégral

(1)

Cours de mathématiques

Chapitre 8

Courbes B-spline

Une courbe de Bézier est totalement modifiée dès qu’on déplace un point de contrôle : on dit que la méthode de Bézier est une méthode globale.

Les Courbes B-Splines1 ont été définies dans les années 70 à travers un algorithme efficace car pyramidal (analogue à celui de De Casteljau) pour remédier à l’inconvénient de la globalité : le déplacement d’un point de contrôle de la courbe n’affecte ainsi plus qu’une partie limitée de la courbe, ce qui amène un plus grand confort dans la conception assistée par ordinateur.

La méthode B-Spline est donc une méthode locale.

Aymar de Saint-Seine Année scolaire 2014–2015 1. spline se prononce [splain], ce qui le distingue de spleen [spli :n] (Wikipedia)

(2)

1. Courbes B-Splines (Modèle de Riesenfeld, degré 2)

1.1. Nature du problème

On donne 4 points P0, P1, P2 et P3.

On veut obenir deux arcs de courbes C0 etC1.

C0 a pour représentation : OM0(t) =R0(t)OP0+R1(t)OP1+R2(t)OP2. C1 a pour représentation : OM1(t) =R0(t)OP1+R1(t)OP2+R2(t)OP3. R0, R1 etR2 sont des polynômes de degré 2 et t est dans l’intervalle [0; 1].

On impose les contraintes suivantes :

1. Les courbes C0 et C1 ne dépendent pas du repère choisi.

traduction : M0 est le barycentre de (P0, R0) (P1, R1) (P2, R2) soit R0(t) +R1(t) +R2(t) = 1 (en particulier pour t= 0) 2. Les courbes C0 et C1 se raccordent.

traduction : OM0(1) =OM1(0) soit

R0(1)OP0+R1(1)OP1+R2(1)OP2 =R0(0)OP1+R1(0)OP2+R2(0)OP3 Après identification des coefficients des vecteurs, on obtient :

R0(1) = 0 ; R1(1) =R0(0) ; R2(1) =R1(0) ; R2(1) = 0. 3. Les courbes C0 et C1 ont même tangente au point de raccordement.

traduction :

OM0(1)

=

OM1(0)

soit

R0(1)OP0+R1(1)OP1+R2(1)OP2 =R0(0)OP1+R1(0)OP2+R2(0)OP3 Après identification des coefficients des vecteurs, on obtient :

R0(1) = 0 ; R1(1) =R0(0) ; R2(1) =R1(0) ; R2(1) = 0.

Les polynômes Ri étant de degré deux, on a :

R0(t) = a0t2+b0t+c0 R1(t) = a1t2+b1t+c1 R2(t) = a2t2+b2t+c2

et par suite

R0(t) = 2a0t+b0 R1(t) = 2a1t+b1 R2(t) = 2a2t+b2

En écrivant les contraintes ci-dessus, on obtient un système de neuf équations à neuf inconnues :

c0+c1+c2 = 1 ;

a0 +b0+c0 = 0 ; a0+b1+c1 =c0 ; a2+b2+c2 =c1 ; c2 = 0 ; 2a0+b0 = 0 ; 2a1+b1 =b0 ; 2a2+b2 =b1 ; b2 = 0.

En résolvant ce système, on obtient : R0(t) = t2

2 −t+ 1

2 ; R1(t) =−t2 +t+1

2 et R2(t) = t2 2.

(3)

Définition 1 :

La courbe formée par C0 etC1 est la courbe B-Spline asssociée aux 4points de contrôle P0, P1, P2 et P3.

Les 3 polynômes R1, R2 et R3 sont appelés polynômes de Riesenfeld du second degré.

On les note R0,2(t);R1,2(t) et R2,2(t).

1.2. Exemple

Déterminer la courbe B-spline associée aux points de contrôle P0(1; 2), P1(2; 0), P2(3; 4) et P3(4; 1).

Courbe B-spline (Modèle de Riesenfield de degré 2) C0 a pour représentation :

OM0(t) = R0,2(t)OP0+R1,2(t)OP1+R2,2(t)OP2

= (t2

2 −t+1 2) 1

2

!

+ (−t2 +t+1 2) 2

0

!

+t2 2

3 4

!

= t+32 3t2−2t+ 1

!

C1 a pour représentation :

OM1(t) = R0,2(t)OP1+R1,2(t)OP2+R2,2(t)OP3

= (t2

2 −t+1 2) 2

0

!

+ (−t2 +t+1 2) 3

4

!

+t2 2

4 1

!

= t+52

7t22 + 4t+ 2

!

Tableau des variations conjointes : t

x0(t) x0(t)

y0(t) y0(t)

0 13 1

+

3 2 3 2

5 2 5 2 1

3

11 6

11

2 3 2 3

22

− 0 +

t x1(t) x1(t)

y1(t) y1(t)

0 47 1

+

5 2 5 2

7 2 7 2 4

7

43 14

22

22 7 22

7

5 2 5 2

+ 0 −

(4)

Tracé de la courbe :

1 2 3 4

1 2 3 4 5

b b b

P0

P1 P2

P3

Remarques : 1.

( x0(t) = t+ 32

y0(t) = 3t2−2t+ 1 donc

( t = x032

y0 = 3(x032)2−2(x032) + 1 = 3x20−11x0+434 C’est l’équation d’une parabole.

2. La courbe B-Spline ne passe pas par les points de définition (contrairement à une courbe de Bézier qui passe par certains points de contrôle).

3. C0 est la courbe de Bézier de points de contrôle M0(0), P1 et M0(1) et C1 est la courbe de Bézier de points de contrôle M1(0), P2 et M1(1). (Admis et seulement vrai pour le degré 2, voir la section 3 sur le lien entre les modèles en fin de cours.)

2. Courbes B-Splines (Modèle de Riesenfeld, degré 3)

On ajoute un point P4 aux 4 points précédents. On a alors deux possibilités : Soit on ajoute un arc :

On obtient alors trois arcs C0, C1 et C2; le dernier arc C2 ayant pour points de définition P2,P3 etP4 associés aux mêmes polynômes R0,2, R1,2 et R2,2.

Si on déplace P0, seul l’arc C0 est modifié. C1 etC2 restent fixes.

Si on déplace P1, les arcsC0 et C1 sont modifiés. C2 restent fixes.

Le caractère localvoulu est bien obtenu.

Soit on augmente le nombre de points de définition pour chacun des arcs : Avec 5 points de définition, on peut définir 2 arcs G0 etG1 définis chacun par 4 points de définition associés à 4 polynômes du troisième degré.

Pour G0 :OM0(t) =Q0(t)OP0+Q1(t)OP1+Q2(t)OP2+Q3(t)OP3. Pour G1 :OM1(t) =Q0(t)OP1+Q1(t)OP2+Q2(t)OP3+Q3(t)OP4. avec Q0, Q1,Q2 et Q3 polynômes du troisième degré.

En imposant les contraintes d’indépendance au repère et de raccord (même point et même tangente) et en opérant de façon similaire à ce qui a été fait en début de chapitre, on trouve :

Q0(t) = −t63 +t22t2 +16 Q1(t) = t23t2+ 23 Q2(t) = −t23 +t22 +2t + 16 Q3(t) = t63

(5)

Définition 2 : polynômes de Riesenfeld

Les polynômes trouvés sont dits polynômes de Riesenfeld de degré 3.

On les note R0,3(t);R1,3(t);R2,3(t) et R3,3(t).

Plus généralement, le i-ème polynôme de Riesenfeld de degrénest donné par la formule : Ri,n(t) = (n+ 1)

ni

X

j=0

(−1)j(t+nij)n j!(n+ 1−j)!

2.1. Exemple

En ajoutant le point P4(1; 2) aux points définis précédemment.

Soit on ajoute un arc : B-spline Riesenfeld de degré 2 C2 a pour représentation :

OM2(t) = R0,2(t)OP2+R1,2(t)OP3+R2,2(t)OP4

= (t2

2 −t+1 2) 3

4

!

+ (−t2 +t+1 2) 4

1

!

+t2 2

1 2

!

=

4t2+2t+7 4t226t+5

2

!

Tracé de la courbe :

1 2 3 4

1 2 3 4 5

b b b

P0 =P4

P1 P2

P3

Soit on augmente le nombre de points de définition pour chacun des arcs : B-spline Riesenfeld de degré 3

C0 a pour représentation :

OM0(t) = R0,3(t)OP0+R1,3(t)OP1+R2,3(t)OP2+R3,3(t)OP3

= (−t3 6 +t2

2 − t 2 +1

6) 1 2

!

+ (t3

2 −t2+2 3) 2

0

!

+ (−t3 2 + t2

2 + t 2 +1

6) 3 4

!

+ t3 6

4 1

!

= t+ 2

13t3+18t2+6t+6 6

!

(6)

C1 a pour représentation :

OM1(t) = R0,3(t)OP1+R1,3(t)OP2+R2,3(t)OP3+R3,3(t)OP4

= (−t3 6 +t2

2 − t 2 +1

6) 2 0

!

+ (t3

2 −t2+2 3) 3

4

!

+ (−t3 2 + t2

2 + t 2 +1

6) 4 1

!

+ t3 6

1 2

!

=

2t3+3t+9 11t321t32+3t+17

6

!

Tracé de la courbe :

1 2 3 4

1 2 3 4 5

b b b

P0 =P4

P1 P2

P3

Remarque : On remarque que si les courbes de degré 3 permettent de tracer un point double ou un point de rebroussement, elle augmente cependant les variations de la courbe.

On préfère ainsi utiliser autant que possible les polynômes de Riesenfeld de degré 2.

3. Courbes B-Splines (Modèle de Cox et de de Boor)

3.1. Fonctions B-splines

Définition 3 : Vecteur Noeud

On appelle vecteur-nœud une suite d’entiers naturels (t0 ; t1 ; · · ·; tk) tels que : t0 = 0 et

( soit ti+1 =ti+ 1 ; soit ti+1 =ti. Chaque nombre ti est un nœud.

Exemples :

(0 ; 1 ; 2 ; 3 ; 4) est un vecteur 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 triple et 3 est double.

(1,2,2,3) n’est pas un vecteur-nœud car t0 6= 0.

(0,1,1,3,4) n’est pas un vecteur-nœud car t3 =t2+ 2.

(7)

Définition 4 : Fonctions B-Splines

Le vecteur-nœud (t0 ;t1 ;· · ·;tk) étant choisis, les fonction Splines ou B-Splines N(i,m) de degré m associés à ce vecteur nœud sont définies sur R par :

N(i,0)(t) =

( 1 si ti 6t < ti+1 ; 0 sinon.

et pour m= 1; 2; 3· · ·:N(i,m)(t) = tti

ti+mtiN(i,m1)(t) + ti+m+1t

ti+m+1ti+1N(i+1,m1)(t) Par convention, si un des dénominateurs est nul, on annule le terme correspondant.

Remarque : La définition des fonctions B-splines pour m = 0 implique que toutes les fonctions B-splines sont nulles sur ]− ∞; 0] et sur [dernier noeud; +∞[.

C’est une définition récursive à double indice qui impose un calcul triangulaire décroissant.

Dans la pratique, on inverse le procédé et on calcule le maximum de fonctions B-spline pour m= 0 avant de faire celle pourm = 1 et ainsi de suite dans l’ordre croissant dem.

(voir l’exemple ci-dessous pour mieux comprendre).

Exemple : Soit le nœud (0 ; 1 ; 2 ; 3).

On a t0 = 0, t1 = 1, t2 = 2 et t3 = 3.

Déterminons les fonctions B-Splines associées à ce nœud :

m= 0 (Degré 0) :

i= 0 N0,0(t) =

( 1 si 06t <1 ; 0 sinon.

1

−1 1 2 3 4 5

−1

−2

b b

i= 1 N1,0(t) =

( 1 si 16t <2 ; 0 sinon.

1

−1 1 2 3 4 5

−1

−2

b b

i= 2 N2,0(t) =

( 1 si 26t <3 ; 0 sinon.

1

−1 1 2 3 4 5

−1

−2

b b

i>3

Pour déterminerN3,0(t), il faut connaitret4 qui n’existe pas. Le problème est simi- laire pour N4,0(t), · · · Pour ce vecteur noeud, il n’y a donc que trois fonctions B-splines de degré 0, N0,0(t),N1,0(t) et N2,0(t).

m= 1 (Degré 1) :

N(0,1)(t) = tt0

t1t0N(0,0)(t) + t2t

t2t1N(1,0)(t) =t× N(0,0)(t) + (2−t)× N(1,0)(t) N(1,1)(t) = tt1

t2t1N(1,0)(t) + t3t

t3t2N(2,0)(t) = (t−1)× N(1,0)(t) + (3−t)× N(2,0)(t) N(2,1)(t) = tt2

t3t2N(2,0)(t) + t4t

t4t3N(3,0)(t)· · · mais on ne connait ni t4, ni N(3,0)(t).

Pour ce vecteur noeud, il n’y a que deux fonctions B-splines de degré 1

(8)

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) = tt0

t2t0N(0,1)(t) + t3t

t3t1N(1,1)(t) = t

2× N(0,1)(t) + 3−t

2 × N(1,1)(t) Le calcul de N(1,2) fait intervenir ti+m+1 =t1+2+1=t4 et N(2,1) qui n’existent pas.

Pour ce vecteur noeud, il n’y a qu’une fonction 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 t22 −t2+ 3t− 32 (3t)2

2 0

1

−1 1 2 3 4 5

Pour ce vecteur noeud, il n’y a pas de fonction B-spline de degré 3.

(9)

3.2. Courbes B-splines

Définition 5 : B-Splines, modèles de Cox et de de Boor

On définit une courbe B-Spline associée àn+ 1 points de contrôle P0, P1, · · · Pn de la façon suivante :

OM =

i=n

X

i=0

N(i,m)

OPi. avec N(i,m) de degré m qui dépend du vecteur nœud choisi.

3.3. Exemple

On considère le vecteur nœud (0 ; 0 ; 0 ; 1 ; 2 ; 3 ; 3 ; 3).

On prend les 5 points de contrôle P0(1; 0), P1(4; 2), P2(2; 4), P3(0; 4) et P4(−4; 4).

Déterminer la courbe B-spline (modèle de Cox et de Boor) associée.

Les 5 fonctions 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 12t(4−3t) 12(t−2)2 0 0

0 t22 −t2+ 3t− 32 (t3)2

2 0

0 0 12(t−1)2 12(3−t)(3t−5) 0

0 0 0 (t−2) 0

La courbe B-Spline associées à ce vecteur-nœud et ces points de contrôle est :

OM =

i=4

X

i=0

N(i,2)OPi.

• sur ]− ∞ ; 0] et sur [3 ; +∞[, la courbe B-Spline est nulle.

• sur [0; 1] :

OM(t) = N(0,2)OP0+N(1,2)OP1+N(2,2)OP2+N(3,2)OP3+N(4,2)OP4

= (t2 −2t+ 1)× 1 0

!

+ (−3t2

2 + 2t)× 4 2

!

+ t2 2 × 2

4

!

+ 0× 0 4

!

+ 0× −4 4

!

= −4t2+ 6t+ 1

−t2+ 4t

!

(10)

• sur [1; 2] :

OM(t) = N(0,2)

OP0+N(1,2)

OP1+N(2,2)

OP2+N(3,2)

OP3+ +N(4,2)

OP4

= 0× 1 0

!

+ (t2

2 −2t+ 2)× 4 2

!

+ (−t2 + 3t− 3

2)× 2 4

!

+· · ·

· · ·(t2

2 −t+1

2)× 0 4

!

+ 0× −4 4

!

= −2t+ 5

−t2+ 4t

!

• sur [2; 3] :

OM(t) = N(0,2)

OP0+N(1,2)

OP1+N(2,2)

OP2+N(3,2)

OP3+ +N(4,2)

OP4

= 0× 1 0

!

+ 0× 4 2

!

+ (t2

2 −3t+ 9

2)× 2 4

!

+· · ·

· · ·(−3t2

2 + 7t− 15

2 )× 0 4

!

+ (t2−4t+ 4)× −4 4

!

= −3t2+ 10t−7 4

!

La courbe B-Spline est obtenue en tracant chacun des trois morceaux de parabole.

1 2 3 4

1 2 3 4

−1

−2

−3

−4

−5

P0

P1 P2

P3 P4

b b

b

b

b

Remarques :

Longueur du vecteur noeud à choisir :

Si l’on a 5 points de contrôle et que l’on souhaite une courbe B-splines de degré 2, alors il faut déterminer les fonctions B-splinesN(0,2),N(1,2),· · ·,N(4,2). Le calcul de cette dernière fonction fait intervenir le noeudti+m+1 =t4+2+1 =t7 ce qui implique que le vecteur noeud choisis doit être au moins de longueur i+m+ 2 = 8 (de t0 à t7).

Plus généralement, pour calculer N(i,m), il faut un vecteur noeud de longueur au moins i+m+ 2 et pour une courbe B-spline il faut un vecteur noeud de longueur au moins nbre points + degré + 1.

Caractère local :

Le définition récursive de N(i,m) implique que cette fonction est nulle sauf sur [ti ; ti+m+1]. En conséquence, si on déplace Pi on ne modifie que la partie de la courbe pour laquelle t ∈ [ti ; ti+m+1] donc on a bien une modification locale de la courbe. Plus généralement, si le degré des fonctions B-splines est m alors le déplacement d’un point ne modifie que m+ 1 segments de la courbe.

(11)

Nœud multiple :

L’insertion de nœud permet d’introduire plus de dégrés de liberté dans la courbe.

Chaque nœud inséré représente un point de contrôle supplementaire. L’insertion de nœud offre donc plus de flexibilité pour le design des courbes de B-spline.

(12)

1 Courbes B-Splines (Modèle de Riesenfeld, degré 2) . . . 2

1.1 Nature du problème . . . 2

1.2 Exemple . . . 3

2 Courbes B-Splines (Modèle de Riesenfeld, degré 3) . . . 4

2.1 Exemple . . . 5

3 Courbes B-Splines (Modèle de Cox et de de Boor) . . . 6

3.1 Fonctions B-splines . . . 6

3.2 Courbes B-splines . . . 9

3.3 Exemple . . . 9

Références

Documents relatifs

En traitant ls conflits dans le sens des profondeurs croissantes, nous avons pu corriger les intersections entre toutes les courbes : la d´eformation appliqu´ee `a une courbe est

Montrer que l’image par f de la courbe de B´ ezier sur les points de contrˆ ole P

Dans le cas du vecteur nodal de type II, les 4 premiers points nodaux étant répétés, les splines cor- respondantes donnent le point P 0 et de même les 4 dernières donnent P 9.. De

si le degré des fontions B-splines est m alors le déplaement d'un point ne modie que m + 1 segments de la ourbe.. • N÷ud

une personne atteinte de diabète de type 2 qui comprend et croit en l'importance de pratiquer l'AP pour sa condition et qui la pratique, car elle apprécie les

A new global basis of B-splines is defined in the space of generalized quadratic splines (GQS) generated by Merrien subdi- vision algorithm.. Then, refinement equations for

Exemple d’une charte graphique: La charte graphique de l’université de Rennes 2 Eléments de l’identité visuelle: 1) Le logo(type), nom/ acronyme, baseline, ….. ©

Atanasova, G, Isaeva, A, Ivanova, P, Kalenderova, S, Poumay, Y &amp; Mitev, V 2007, 'Pharmacological growth inhibition of papillomavirus type 16 E6E7-transformed keratinocytes by