Vous êtes sur la page 1sur 17

Modélisation de courbes et de surfaces

Le but de ce cours est de présenter des méthodes de modélisation de courbes et de surfaces.


Afin de mettre en évidence les avantages et les inconvénients de chacune, il est préférable de
raisonner sur la modélisation de courbes, puisqu’un carreau de surface est généré par
déplacement et déformation d’une courbe. La modélisation de carreaux de surface est traitée
dans le cas de la définition utilisant les polynômes de Bézier. Les problèmes de raccordement
d’éléments de surface, de continuité et d’intersection sont traités dans le cas général des
définitions polynomiales.

1. Introduction

On rencontre deux types de problèmes :


¾ l’interpolation et l’approximation dans lesquelles la courbe est plus ou moins astreinte à
passer par des points Mi de coordonnées (xi, yi, zi) connues ;
¾ la création de formes pour laquelle des contraintes ne sont imposées qu’en quelques points
particuliers.
Dans le cas le plus strict, on connaît un ensemble de n+1 points et on cherche à déterminer
les coefficients du polynôme Pn de degré n passant exactement par tous ces points. La
méthode des polynômes de Lagrange apporte une solution élégante mais dès que le nombre de
points de passage obligé augmente, des oscillations peuvent apparaître, en particulier dans les
zones extrêmes (figure 1).

× ×
×
×
× ×

× ×
× ×

Figure 1

Pour remédier à cet inconvénient, on peut imposer des contraintes telles que, par exemple,
minimiser une fonctionnelle comme dans la méthode Spline.
Si le passage de la courbe par l’ensemble des points donnés n’est pas impératif, le but
recherché étant plutôt un « lissage », on peut :
) soit chercher un polynôme Pr de degré r inférieur à n passant « au mieux » parmi les
points. C’est ce que l’on fait manuellement en traçant une courbe qui doit traduire le
résultat de mesures expérimentales (figure 2) ;
) soit chercher une approximation par une succession d’arcs de courbe de degré peu élevé
(2, 3 ou 4), la continuité entre deux arcs successifs étant assurée jusqu’à un ordre donné.
La méthode de Riesenfeld apporte une solution à ce problème.

Enfin, pour la création ou « l’invention » de formes, il est souhaitable de donner à


l’opérateur un outil dans lequel des entités, tels que des vecteurs, aient une signification
géométrique évidente, en particulier aux extrémités de chaque élément de courbe. Les
polynômes de Bézier (méthode UNISURF) apportent une solution simple et efficace à ce
problème.

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 1
U
Vérification expérimentale de U = RI
Bon
× × Mauvais
×
× × ×
× ×
×
×
×
× I

Figure 2

De cette introduction découle tout naturellement le plan suivant :


‰ Polynômes exacts : polynômes de Lagrange ; fonctions Spline.
‰ Approximation : polynômes de degré inférieur ; méthode de Riesenfeld.
‰ Création de formes : Ferguson (pour mémoire) ; polynômes de Bézier ;
Bernstein ; B-Spline.
‰ Exemple de génération de surfaces : Coons, Bézier.
‰ Raccordement entre carreaux de surface.
‰ Intersection entre carreaux.

1.1. Modes de représentation

Dans ce qui suit, on utilisera différentes représentations :

™ Définition polynomiale explicite


La courbe est définie par les polynômes, du type y = P(x), de ses projections sur chacune des
faces du référentiel. Ce mode ne permet pas d’avoir des directions de tangente parallèles aux
axes.

™ Définition paramétrique
La courbe est définie par les variations de ses composantes en fonction d’un paramètre u avec
u ∈ D, D = [ 0, 1]
x (u) x’ (u)
P(u) y (u) direction de la tangente : dP/du = P’(u) y’ (u)
z (u) z’ (u)

™ Définition paramétrique vectorielle


On associe des fonctions réelles fi (u) à des vecteurs αi de R3 :
P(u) = f0(u).α0 + f1(u).α1 + ... fi(u).αi + ... + fn(u).αn
z z U=1

P(u)
U=0

y y

x y = P(x) x

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 2
2. Polynômes exacts

2.1. Polynômes de Lagrange

Une courbe de l’espace R3 étant obtenue par combinaison de courbes de R2, il est plus
simple de raisonner dans le plan ox, oy.
Position du problème : on connaît n + 1 couples de valeurs :
x0 x1 ... xi ... xn
y0 y1 ... yi ... yn
Les valeurs xi constituent le support d’approximation et appartiennent à un intervalle [a, b]
(figure 3).
On cherche le polynôme de degré n, Pn (x)
Pn(x) = a0 + a1 . x1 + a2 . x2 + ... ak . xk + ... + an . xn [1]
tel que : Pn(xi) = yi pour i = 0, 1, 2, ..., n [2]
y

yi

yn

y0

x
a x0 x1 xi xn b

Figure 3

Les n+1 coefficients inconnus ak sont obtenus par résolution du système linéaire de n+1
inconnues données par [2]. Cette méthode directe nécessite l’inversion d’une matrice
numérique, ce qui conduit si elle est mal configurée à des résultats erronés.

En effet, soit :

a0 y0 x00 x10 ... xk0 ... xn0


a1 y1 x01 x11 ... xk1 ... xn1
... ... ...............................................................
... ... ...............................................................
[A] = ai [y] = yi [u] = x0i x1i ... xki ... xni [3]
... ... ...............................................................
... ... ...............................................................
an yn x0n x1n ... xkn ... xnn

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 3
Dans [u] chaque ligne est composée des puissances successives 0, 1, ..., k, ...,n d’une
valeur particulière xi du support d’approximation ; chaque colonne est constituée de toutes les
valeurs du support d’approximation à une même puissance k.
Avec cette notation, on a :
[u] . [A] = [y] soit [A] = [u]-1 . [y] [4]

La matrice [u] étant construite sur un support d’approximation, a priori quelconque, le


calcul numérique de son inverse peut conduire à des résultats erronés dus à des erreurs de
chute.
L’utilisation de la méthode des polynômes de Lagrange permet d’éviter cette difficulté.
Le même polynôme Pn(x) est mis sous une forme mettant en évidence les valeurs obligées
yi par l’intermédiaire des polynômes de Lagrange Li(x) de degré n :

Pn(x) = Σni=0 Li(x) . yi [5]


avec : Li(x) = 0 si x ≠ xi [6]
=1 si x = xi
Permettant ainsi à Pn(x) de prendre les valeurs yo, y1, ..., yi, ..., yn lorsque x prend les
valeurs successives xo, x1, ..., xi, ..., xn.
La construction des polynômes Li(x) est très simple. Les coefficients des polynômes Li(x)
ne dépendent que des valeurs xi du support d’approximation :

(x-x0) (x-x1) ... (x-xi-1) (x-xi+1) .... (x-xn)


Li (x) = [7]
(xi-x0) (xi-x1) ... (xi-xi-1) (xi-xi+1) ... (xi-xn)

En combinant les coefficients d’une même puissance de x des différents polynômes Li(x),
associés aux valeurs yi, on retrouve les coefficients ak du polynôme Pn(x) mis sous la
forme [1].
Remarques :
9 Toute modification du support d’approximation entraîne une nouvelle détermination des
coefficients des polynômes Li(x).
9 Lorsque le degré n augmente des oscillations apparaissent surtout aux voisinages des
extrémités de la courbe (figure 4).

2.2. Fonctions Spline

Afin d’éviter les oscillations entre les points de passage obligé de la courbe solution S,
dont la seule contrainte est de vérifier :
S (x) = Pn (xi) = yi pour i = 0, 1, ..., n.

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 4
On lui impose de minimiser la fonctionnelle lq (s) telle que :
lq (s) = ∫ab [S(q) (x)]2 . dx [8]

S(q) représente la dérivée qième de la fonction s,


q représente l’ordre de la fonctionnelle l.
En mécanique, l’énergie de flexion d’une poutre parfaite, de longueur l, non encastrée,
astreinte à passer par des points imposés a pour expression :
E = k . ∫ol [d2 y / dx2]2 . dx [9]

ce qui correspond à la fonctionnelle d’ordre 2. Sa minimisation fournit la position d’équilibre


de la « poutre ». Ce principe de tracé est (ou était) utilisé par les dessinateurs avec l’aide
d’une latte mince, appelée SPLINE en anglais, ce qui a donné le nom aux fonctions obtenues
par minimisation d’une fonctionnelle même lorsque q est différent de 2.

Interpolation de 27 points

Lagrange
----- Spline

Figure 4

Pour une valeur choisie de q ≥ 2, on peut montrer que les fonctions S(x) ayant les
caractéristiques suivantes sont solution :

a- S(x) est un polynôme de degré (q-1) dans les intervalles [a, xo[ et ]xn, b]
(figure 5) ;
b- S(x) est un polynôme de degré (2q-1) dans chaque intervalle ]xi, xi+1[
pour i = 0, 1, 2, ..., n-1 ;
c- la dérivée d’ordre (2q-2) est continue en chaque point xi .

Construction des fonctions Spline

Lorsque x varie de a à b, on peut construire la fonction SPLINE par morceaux en ajoutant,


chaque fois que x franchit une valeur xi, un nouveau polynôme Pi(x) de degré 2q-1 (figure 5).

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 5
Pour cela, on introduit la notation :
(x-xi)+ = 0 si x < xi
= (x-xi) si x ≥ xi [10]

alors Pi(x) = di . (x-xi)+2q-1 / (2q-1)!

Puis on écrit que la solution est de degré q-1 dans ]xn, b]. Ainsi, la solution est de la forme :

S (x) = Σj=0q-1 αj . xj + Σi=0n . Pi (x) [11]

S (x)
construction des fonctions Spline
S (x)

P0 (x)

Pn (x)

P1 (x)

Pi (x)
x
a x0 x1 xi xn-1
degré (q-1) (2q-1) (q-1)

Figure 5

Les inconnues sont les q coefficients αj et les n+1 coefficients di. Pour les déterminer, on
dispose des n+1 équations :
S (xi) = yi pour i = 0, 1, ..., n. [12]

auxquelles il faut ajouter q équations correspondant à l’annulation des coefficients de xj


pour j > q-1, ces coefficients sont obtenus en développant l’expression [11]. Ils sont de la
forme :
Σni=0 di . xik = 0 pour k = 0, 1, ..., q-1. [13]

Les coefficients αj et di dépendent des valeurs xi du support d’approximation et des


valeurs yi, ordonnées des points de passage obligé.
L’expression de S(x) obtenue en résolvant [12] et [13] assure aussi une continuité jusqu’à
l’ordre (2q-2) en chaque point xi ; et la dérivée suivante, d’ordre (2q-1), présente une
discontinuité de valeur di.

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 6
Toute modification des xi et des yi entraîne une nouvelle détermination des coefficients αj
et di. Il n’existe pas de fonctions Spline « prédéterminées ».

Remarque :
Différentes méthodes existent pour déterminer les fonctions Spline, en tenant compte, non
seulement de points de passage obligé, mais aussi de directions de tangente en certains points.

3. Approximation

3.1. Approximation par un polynôme de degré inférieur

On dispose de n+1 couples de valeurs xi, yi. On cherche un polynôme Pr (x) de degré r < n
passant «au mieux parmi les points». C’est le choix d’un critère approprié qui traduit la notion
subjective de «passer au mieux parmi les points» (figure 2).
Le critère le plus utilisé consiste à minimiser la somme Q des carrés des écarts εi :
εi = Pr (xi) - yi pour i = 0, 1, ..., n.
Q = Σni=0 εi 2
Les r+1 coefficients à déterminer du polynôme Pr (x) :
Pr (x) = a0 + a1 . x ... + ar . xr
sont obtenus par résolution du système de r+1 équations, obtenus par :
∂Q / ∂aj = 0 pour j = 0, 1, ..., r
La solution est unique et correspond par ailleurs à : Σni= 0 xij εi = 0

3.2. Méthode de Riesenfeld


On peut raisonner directement dans l’espace R3 grâce à l’utilisation d’une notation
vectorielle et l’emploi de fonctions paramétriques, le paramètre u variant sur [0, 1] (figure 6).

S1

U=0
Si
S0 U=1 Sn
P (u)

Figure 6

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 7
P (u) représente le vecteur décrivant un arc de courbe, lorsque u varie dans [0, 1].
Les points sont définis par des vecteurs Si. Quel que soit le nombre de points, Riesenfeld
propose une approximation constituée d’une successions d’arcs de courbe, chacun de degré
m<<n, construit sur m+1 points Si et deux arcs de courbe successifs utilisent m points
communs, la continuité entre eux est assurée jusqu’à l’ordre m-1.
Le premier arc va ainsi être défini par les m+1 premiers sommets Si modulés chacun par
une fonction réelle de u, notée Rim (u), tel que :

Pm1 (u) = R0m (u) . S0 + R1m (u) . S1 + ... + Rmm (u) . Sm


= Σmi=0 Rim (u) . Si pour u ∈ [0, 1] [14]

Pour l’arc suivant, l’indice des sommets Si est incrémenté d’une unité :

Pm2 (u) = Σmi=0 Rim (u) . Si+1 pour u ∈ [0, 1]


et ainsi de suite.
Les fonctions Rim (u), fonctions de Riesenfeld, assurent une continuité d’ordre m-1 entre
deux arcs successifs, en leur point commun, l’extrémité de l’un définie pour u = 1 et l’origine
de l’autre définie pour u = 0, soit :

d(q) Pm1 (1) / duq = d(q) Pm2 (0) / duq pour q = 0, 1, 2, ..., m-1 [15]

En explicitant les conditions [15], on obtient un système qui permet, théoriquement, de


déterminer les fonctions de Riesenfeld en ajoutant la condition, dite de Cauchy :
Σmi=0 Rim (u) = 1

Pour déterminer les fonction Ri m (u), Riesenfeld a proposé l’expression :

Rim (u) = (m+1) . Σj=0m-i . (-1) j . (u+m-i-j)m / j! (m-j+1)! [16]

La figure 7 présente quelques familles de fonctions de Riesenfeld et les interpolations


correspondantes.

Remarques
Pour chaque valeur de m, on obtient une famille de m+1 fonctions répondant à la question.
Ces fonctions sont «prédéterminées» et indépendantes des points, ou sommets Si, ce qui est
nouveau par rapport aux méthodes précédentes. L’utilisation d’une telle méthode ne nécessite
donc aucune détermination préalable.

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 8
1 Fonctions de Riesenfeld n=2 1 Fonctions de Riesenfeld n=3

R12
R13 R23
2/3

0,5
1/2

R02 R22

1/6
R03 R33
0 0
u=0 u=1 u=0 u=1

U=1

U=0
U=0
U=0 U=1

U=1

Figure 7

4. Création de formes
4.1. Historique

Pour la création de formes, l’idée est de mettre à la disposition des opérateurs, un outil
permettant de numériser la courbe aussitôt son esquisse, à partir de quelques points
caractéristiques tels que : position de l’origine (u = 0) et de l’extrémité (u = 1), directions des
tangentes en ces points par exemple.
Une des premières approches a été proposée par J. Ferguson sous forme d’un polynôme à
coefficients vectoriels :
P(u) = α0 + u . α1 + u2 . α2 + u3 . α3 avec u∈[0, 1] [17]

La position de l’origine de la courbe est donnée par le vecteur α0 et celle de l’extrémité par
la somme géométrique des vecteurs :
P(1) = α0 + α1 + α2 + α3
La direction de la tangente à l’origine est donnée par le vecteur α1 = P’(0) et à l’extrémité
par :
P’(1) = α1 + 2 α2 + 3 α3
Ainsi les vecteurs α0 , α1 , α0+α1+α2+α3 ont une signification géométrique claire.

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 9
Ce principe a été repris par P. Bézier et son équipe en associant aux vecteurs α0, α1, ..., αi
non pas les simples puissances successives de u : u0, u1, ..., ui d’un paramètre u, mais des
fonctions f0 (u), f1 (u), ..., fi (u) qui vont être parfaitement et totalement déterminées par un
ensemble de contraintes géométriques imposées aux vecteurs αi.

4.2. Méthode UNISURF. Polynômes de Bézier

Une courbe est définie par une expression paramétrique vectorielle, chaque vecteur αi est
modulé par une fonction fi (u) du paramètre u, avec u∈[0, 1], telle que :

P(u) = Σni=0 f in (u) . αi [18]


A l’origine (u = 0), on impose que :
i
™ La position soit donnée par α0 ⇒ f n (0) = 0 pour i ≠ 0 ;
i
™ La direction de la tangente par α1 ⇒ f n’ (0) = 0 sauf pour i = 1 ;
i
™ La dérivée seconde ne dépende que de α1 et α2 , soit f n’’ (0) = 0 sauf pour i = 1 et
i=2;
™ et d’une façon générale, la dérivée k ne dépend que des k vecteurs significatifs α1,
ième
i (k)
α2 , ..., αk, ce qui impose f n (0) = 0 pour i = k+1, k+2, ..., n.
Et ainsi de suite.

A l’extrémité (u = 1), on impose que :


i
™ la position soit donnée par la somme des vecteurs : α0 + α1 + ... + αn ⇒ f n (1) = 1, ∀i ;
i
™ La direction de la tangente dépende de αn ⇒ f n’ (1) = 0 sauf pour i = n ;
i
™ La dérivée seconde ne dépende que de αn et αn-1, soit f n’’ (1) = 0 sauf pour i = n et
i = n-1 ;
™ et d’une façon générale, la dérivée k en u = 1 ne dépend que des k vecteurs αn, αn-1,
ième
i (k)
... , αn-k+1, ce qui impose : f n (1) = 0 pour i ≤ n-k.

L’utilisation de ces conditions permettent la détermination de familles de fonctions. On


peut les calculer directement par l’expression :

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 10
f in (u) = Σnk=i xki . uk avec xki = (-1)k-i . Ck-ik-1 . Ckn [19]
Les polynômes de Bézier sont ainsi prédéterminés et la modification de la courbe est
obtenue en changeant les vecteurs αi (figure 8) dont les extrémités définissent le polygone
caractéristique.

Figure 8

La figure suivante donne la représentation des familles de polynômes de Bézier, pour


n = 3, n = 4 et n = 5 .

Polynômes de Bézier : n =3 Polynômes de Bézier : n = 4 Polynômes de Bézier : n =5

f 13 f 14 f 15
f 23 f 24 f 25
3 3
f 3 f 4 f 35
f 44 f 45
f 55

u=0 u=1 u=0 u=1 u=0 u=1

fo = 1 fo = 1 fo = 1

f1 = u3 - 3u2 + 3u f1 = -u4 + 4u3 - 6u2 + 4u f1 = u5 - 5u4 + 10u3 - 10u2 + 5u


f2 = -2u3 + 3u2 f2 = 3u4 - 8u3 + 6u2 f2 = -4u5 +15u4 -20u3 + 10u2
f3 = u3 f3 = -3u4 + 4u3 f3 = 6u5 - 15u4 +10u3
f4 = u4 f4 = -4u5 + 5u4
f5 = u5
Quelques propriétés des fonctions de Bézier :
‰ Autre expression : f in (u) = [(-u)i / (i-1)!] . [di-1 φn (u) / dui-1] avec φn = [(1 - u)n –1] / u

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 11
‰ Σni=1 f in (u) = n . u
‰ f in (u) – f i+1n (u) = Cin . ui . (1-u)n - i = Bin (u), fonction de Bernstein
‰ f in (u) = 1 - f jn (1-u) avec j=n-i+1
Cette relation met en évidence l’unicité de la courbe, paramétrée en u ou 1-u, construite sur
le même polygone caractéristique mais décrite dans un sens ou dans l’autre.
‰ f in’ (u) = n . [f i-1n-1 (u) – f in-1 (u)] = n . Ci-1n-1 . ui-1 (1-u)n–i
‰ 1 > f 1n (u) > f 2n (u) > ... f in (u) > ... > f nn (u) pour u∈] 0, 1 [

Autre écriture : Forme polynomiale.


L’expression de départ, utilisant les αi , peut se mettre sous d’autres formes plus
appropriées, soit pour le calcul numérique [18.10] soit mettant en évidence directement les
coordonnées Si des extrémités des vecteurs αi [18.20] appelés sommets caractéristiques :

P(u) = Σi=0n f in (u) . αi = Σi=0n bi . ui = [b]n . [u] [18.10]

avec [b]n = [b0, b1, ..., bi, ..., bn]T [u] = [u0, u1, u2, ..., un]

Ce vecteur [b]n peut être obtenu à partir des vecteurs αi et des coefficients xki des fonctions
de Bézier (relation [19]) :

[b]n = [x]n . [α]n [18.11]

1 0 0 ... ... 0 ← u0 α0
0 x11 0 ... .. 0 ← u1 α1
avec 0 x21 x22 ... ... 0 ← u2 α2
[X]n = et [α]n =
.................................................. ... ...
.................................................. ... ...
0 xn1 xn2 ... ... xnn ← u n
αn

↑ ↑ ↑ ... ... ↑
0 1 2
f n f n f n ... ... f nn

Chaque colonne de la matrice [X]n est composée des coefficients des puissances
successives du paramètre u, des fonctions successives f 0n, f 1n, ..., f in, ..., f nn. Chaque ligne est
composée des coefficients xki relatifs aux termes de même puissance uk, pour k variant de 0 à
n. On remarquera que [X]n est triangulaire inférieure.
De la relation [18.11], on déduit immédiatement :

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 12
[α]n = [X]-1n . [b]n [18]
ce qui met en évidence que toute courbe définie par un polynôme peut se mettre sous la forme
UNISURF et réciproquement.

Fonctions de Bernstein
Dans l’expression [18], on peut exprimer les vecteurs αi par les composantes Si donnant
les sommets du polygone caractéristiques :

αi
S i-1 Si

y
o

αi = Si − Si-1 avec S-1 = 0 (vecteur nul)

P(u) = Σni=0 f in (u) . αi = Σni=0 f in (u) . (Si − Si-1)

et en développant selon les Si :

P(u) = Σni=0 [f in (u) – f i+1n (u)] . Si = Σni=0 Bin (u) . Si [18.20]

i i i n-1
Les fonctions B n (u) = C n . u . (1-u) sont les fonctions de Bernstein, aussi appelées
fonctions « Mélange », dont on donne quelques exemples de représentation.

La formulation utilisant les fonctions de Bernstein est bien adaptée pour la modification
d’une courbe. En effet, si le sommet Sk est déplacé de la quantité ΔSk, la nouvelle courbe a
pour expression :
PMOD(u) = P(u) + Bkn(u) . ΔSk

La déformation est portée par le vecteur ΔSk, d’amplitude modulée par la fonction de
Bernstein associée Bkn (u).

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 13
B04 B44
B03 B33

B14 B34
1 2
B 3 B 3
B24

Fonctions de Bernstein n = 4
Fonctions de Bernstein n = 3
3 2 B0 = u 4 - 4 u3 + 6 u2 - 4 u + 1
B0 = -u +3u -3u+1
3 2 B1 = - 4u4 + 12 u3 - 12 u2 + 4 u
B1 = 3u -6u +3u
3 2 B2 = +6u4 - 12 u3 + 6 u2
B2 = - 3 u + 3 u
B3 = 4u4 + 4u3
B3 = u3
B4 = u4

B05 B55 Fonctions de Bernstein n = 5


B0 = - u5 + 5u4 - 10u3 + 10u2 - 5u + 1
B1 = + 5u5 - 20u4 + 30u3 - 20u2 + 5u
B15 B45 B2 = - 10u5 + 30u4 - 30 u3 + 10u2
B3 = 10u5 - 20u4 + 10u3
B25 B35
B4 = - 5u5 + 5u4
B5 = u5

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 14
EXPRESSION ANALYTIQUE DES B-SPLINE

Vecteur nodal T = [t0, t1, ... ti, ... tk] suite de nombres réels.
ti = nœud, simple si ti-1 < ti <ti+1
multiple si ti = ti+1
Exemples : t = [0, 1, 2, 3, 4] nœuds simples
t = [0, 0, 0, 1, 2, 3, 3, 3] deux nœuds sont de multiplicité 3.

Algorithme de COX-DE BOOR.

Fonction de B-Spline de degré m (d’ordre m+1)

m=0 Ni,0 (t) = 1 si t ∈ [ti , ti+1[


0 ailleurs

t − ti ti+m+1 − t
∀m Ni,m (t) = . Ni,m-1 (t) + . Ni+1,m-1 (t)
ti+m − ti ti+m+1 − ti+1

convention 0/0 = 0

Exemple : T = [0, 1, 2, 3]

On a m=0 N0,0 (t) = 1 pour t ∈ [0 , 1[


N1,0 (t) = 1 pour t ∈ [1 , 2[
N2,0 (t) = 1 pour t ∈ [2 , 3[

m=1 N0,1 (t) = t pour t ∈ [0 , 1[


N0,1 (t) = 2-t pour t ∈ [1 , 2[
N0,1 (t) = 0 pour t ∈ [2 , 3[

N1,1 (t) = 0 pour t ∈ [0 , 1[


N1,1 (t) = t-1 pour t ∈ [1 , 2[
N1,1 (t) = 3-t pour t ∈ [2 , 3[

m=2 N0,2 (t) = t2/2 pour t ∈ [0 , 1[


N0,2 (t) = -t2+3t-3/2 pour t ∈ [1 , 2[
N0,2 (t) = 1/2 (t-3)2 pour t ∈ [2 , 3[

Représentations :

N0,1 N1,1
1 N0,2
0.75
0.5

t
0 1 2 3 0 1 2 3

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 15
Relation avec RIESENFELD

Vecteur Nodal composé de nœuds simples équidistants, par exemple : ti+1 = ti + 1


Avec changement de variable t = ti +u

Exemple : T = [ 0, 1, 2, 3, 4]
N0,3 (t) = 1/6 t3 pour t ∈ [0 , 1[
N0,3 (t) = 1/6 [(-2t3+6t2-3t)+(4-t).(t-1)2] pour t ∈ [1 , 2[
N0,3 (t) = 1/6 [t.(3-t)2+(4-t).(-2t2+10.t-11)] pour t ∈ [2 , 3[
N0,3 (t) = 1/6 (4-t)3 pour t ∈ [3 , 4[

Changement de variable :
t=u N0,3 (u) = 1/6 u3 ⇔ R33 (u)
t = 1+u N0,3 (u) = 1/6 [-3u3+3u2+3u+1] ⇔ R23 (u)
t = 2+u N0,3 (u) = 1/6 [3u3-6u2+4] ⇔ R13 (u)
t = 3+u N0,3 (u) = 1/6 [1-u]3 ⇔ R03 (u)

N0,3 (t)
R23 R13
0,5

R33 R03
0
0 1 2 3 4
u u
0 1 0 1

Relation avec BERNSTEIN


2 nœuds consécutifs de multiplicité m+1
Exemple : T = [0, 0, 0, 0, 1, 1, 1, 1]

N0,3 (u) = [1-u]3 ⇔ B03 (u)


N1,3 (u) = 3 u [1-u]2 ⇔ B13 (u)
N2,3 (u) = 3 u2 [1-u] ⇔ B23 (u)
N3,3 (u) = u3 ⇔ B33 (u)

B03 B33

B13 B23

u
0 1

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 16
Cas mixte T = [0, 0, 0, 2 /5, 1, 1, 1]

0 -------------- t --------------- 2/5 ---------------------- 1

N0,2 (t) = (1-5/2t)2 N0,2 (t) = 0


N1,2 (t) = 5t(1-7/4t) N1,2(t) = 5/3 (1-t)2
N2, 2 (t) = 5/2 t2 N2,2(t) = 10/9 (1-t)(4t-1)
N3,2 (t) = 0 N3,2 (t) = 25/9 (t-2/5)2

N0,2 (t) N3,2 (t)


N1,2 (t)
N2,2 (t)
0,6

0,4

0 2/7 2/5 5/8 1

P (t) = Σ3i=0 Ni,2 . Si

S1
t=2/5
S2

S0 P (t)
t=0

t=0
S3

Ecole Nationale Supérieure d’Arts & Métiers – Meknès ----------------------- CFAO --------------------------- RADOUANI 17

Vous aimerez peut-être aussi