Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
× ×
×
×
× ×
× ×
× ×
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.
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
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)
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
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 :
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]
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).
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]
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 .
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]
Puis on écrit que la solution est de degré q-1 dans ]xn, b]. Ainsi, la solution est de la forme :
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]
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
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
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 :
Pour l’arc suivant, l’indice des sommets Si est incrémenté d’une unité :
d(q) Pm1 (1) / duq = d(q) Pm2 (0) / duq pour q = 0, 1, 2, ..., m-1 [15]
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.
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 :
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
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
fo = 1 fo = 1 fo = 1
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 [
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]) :
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 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
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.
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]
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
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
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,4
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