Vous êtes sur la page 1sur 20

CFAO

‫محم د رض واين‬
M.RADOUANI@ensam-umi.ac.ma

École Nationale Supérieure d’Arts & Métiers ‫املدرسة الوطنية العليا للفنون واملهن‬
 : Marjane 2, B.P. : 15290 – Meknès, Maroc ‫ املغرب‬،‫ – مكناس‬15290 : ‫ صندوق الربيد‬،2 ‫ مرجان‬: 
Tél : 05 35 46 71 60/62 – Fax : 05 35 46 71 64 05 35 46 71 64 : ‫ – الفاكس‬05 35 46 71 60/62 : ‫الهاتف‬
Site web : www.ensam-umi.ac.ma : ‫املوقع الإلكرتوين‬
Modélisation de courbes et de surfaces

1- Introduction
La CFAO (Conception et Fabrication Assistées par Ordinateurs) permet de regrouper autour

‫محم د رض واين‬
d’un modèle informatique toutes les données d’un projet ayant trait à la conception-
fabrication, d’accéder sélectivement à ces données et de les transcrire sous une forme
directement compréhensible par les intervenants.

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


dédiées à la CFAO. 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.

On rencontre deux types de problèmes :

M.RADOUANI@ensam-umi.ac.ma
 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. Oscillations dans les zones extrêmes

Pour remédier à cet inconvénient, on peut imposer des contraintes telles que, par exemple,
minimiser une fonctionnelle comme dans la méthode Spline.

Page 2 CFAO
Modélisation de courbes et de surfaces

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.

U


M.RADOUANI@ensam-umi.ac.ma




 I

Figure 2. Vérification expérimentale : U = R I

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.

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 ; 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.

Page 3 CFAO
Modélisation de courbes et de surfaces

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 XY.

Position du problème : on connaît n + 1 couples de valeurs :

(x0, y0) ; (x1, y1) ; ... ; (xi, yi) ; ... ; (xn, yn)

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]

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.

M.RADOUANI@ensam-umi.ac.ma
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

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.

Page 4 CFAO
Modélisation de courbes et de surfaces

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 L i(x),

M.RADOUANI@ensam-umi.ac.ma
associés aux valeurs yi, on retrouve les coefficients ak du polynôme Pn(x) mis sous la forme [1].

Remarques :

 Toute modification du support d’approximation entraîne une nouvelle détermination


des coefficients des polynômes Li(x).

 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.

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 :

Page 5 CFAO
Modélisation de courbes et de surfaces

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.

____ Lagrange
_ _ _ Spline

M.RADOUANI@ensam-umi.ac.ma
Figure 3. Interpolation de 28 points

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.

Pour cela, on introduit la notation :

(x-xi)+ = 0 si x  xi

= (x-xi) si x  xi [10]

Page 6 CFAO
Modélisation de courbes et de surfaces

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 :

q−1
S (x) = ∑j=0 j . xj + ∑ni=0 Pi (x) [11]

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

M.RADOUANI@ensam-umi.ac.ma
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. 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 ; Q = ∑ni=0 2i pour i = 0, 1, ..., n.

Page 7 CFAO
Modélisation de courbes et de surfaces

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 3).
S1

U=0
Si
S0 U=1 Sn

M.RADOUANI@ensam-umi.ac.ma
P(u)

Figure 3. P(u) ; u variant sur [0, 1]

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 succession 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

= ∑m
i=0 R m (u) . Si
i pour u  [0, 1] [14]

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

Page 8 CFAO
Modélisation de courbes et de surfaces

Pm2 (u) = ∑m
i=0 R m (u) . Si+1
i 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 :

∑m
i=0 R m (u) = 1
i

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

Rim (u) = (m+1) . ∑m


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

M.RADOUANI@ensam-umi.ac.ma
Les figures 4 et 5 présentent 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 S i, 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.

1 1

R12
R13 R23
2/3

1/2

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

Figure 4. Fonctions de Riesenfeld (m=2 et m=3)

Page 9 CFAO
Modélisation de courbes et de surfaces

‫محم د رض واين‬
Figure 5. Interpolations des familles de fonctions de Riesenfeld (n=2)

4- Création de formes
4.1- Historique

M.RADOUANI@ensam-umi.ac.ma
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.

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

Page 10 CFAO
Modélisation de courbes et de surfaces

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
2.2.1- Polynômes de Bézier

Une courbe est définie par une expression paramétrique vectorielle (figure 6), 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]

2

1

U=0 i

M.RADOUANI@ensam-umi.ac.ma
z

0 U=1
n
y
o

Figure 6. Courbe de Bézier

À l’origine (u = 0), on impose que :

 La position soit donnée par 0  f in (0) = 0 pour i  0 ;

 La direction de la tangente par 1  f in’ (0) = 0 sauf pour i = 1 ;

 La dérivée seconde ne dépende que de 1et 2, soit f in’’ (0) = 0 sauf pour i = 1 et i = 2 ;

 et d’une façon générale, la dérivée kième ne dépend que des k vecteurs significatifs 1,
2 , ..., k, ce qui impose f in(k) (0) = 0 pour i = k+1, k+2, ..., n.

Et ainsi de suite (figure 7).

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

Page 11 CFAO
Modélisation de courbes et de surfaces

 la position soit donnée par la somme des vecteurs : 0 + 1 + ... + n  f in (1) = 1, i ;

La direction de la tangente dépende de n  f in’ (1) = 0 sauf pour i = n ;

‫محم د رض واين‬

 La dérivée seconde ne dépende que de n et n-1, soit f in’’ (1) = 0 sauf pour i = n et i = n-1 ;

 et d’une façon générale, la dérivée kième en u = 1 ne dépend que des k vecteurs n, n-
1, ... , n-k+1, ce qui impose : f in(k) (1) = 0 pour i  n-k.

Figure 7. Courbe élémentaire de Bézier et son polygone de contrôle

M.RADOUANI@ensam-umi.ac.ma
L’utilisation de ces conditions permettent la détermination de familles de fonctions. On peut les
calculer directement par l’expression :

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 (figure 8)


est obtenue en changeant les vecteurs i dont les extrémités définissent le polygone
caractéristique.

Figure 8. Courbe de Bézier et son polygone de contrôle à 10 points

La figure 9 suivante présente la formule et la représentation des familles de polynômes de


Bézier, pour n = 3, n = 4 et n = 5

Page 12 CFAO
Modélisation de courbes et de surfaces

1 Polynômes de Bézier : n =3

‫محم د رض واين‬
fo = 1
f1
f1 = u3 – 3 u2 +3u
f2 = – 2 u3 + 3 u2
f2 f3 = u3

f3

1 Polynômes de Bézier : n = 4
f1 fo = 1
f1 = – u4 + 4 u3 – 6 u2 +4u
f2 f2 = 3 u4 – 8 u3 + 6 u2
f3 = – 3 u4 + 4 u3

M.RADOUANI@ensam-umi.ac.ma
f3
f4 = u4

f4

1 Polynômes de Bézier : n = 5
f1 fo = 1
f1 = u5 – 5 u4 + 10 u3 – 10 u2 +5u
f2
f2 = – 4 u5 + 15 u4 – 20 u3 + 10 u2
f3
f3 = 6 u5 – 15 u4 + 10 u3
f4 f4 = – 4 u5 + 5 u4
f5 = u5
f5

Figure 9. Familles de polynômes de Bézier, pour n = 3, n = 4 et n = 5

2.2.2- 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

 ∑ni=1 f in (u) = n . u

Page 13 CFAO
Modélisation de courbes et de surfaces

 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 [

2.2.3- 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 S i
des extrémités des vecteurs i [18.20] appelés sommets caractéristiques :

P(u) = ∑ni=0 f in (u) . i = ∑ni=0 bi . ui = [b]n . [u] [18.10]

M.RADOUANI@ensam-umi.ac.ma
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]

avec
1 0 0 --- --- 0  u0 0
0 x11 0 --- --- 0  u1 1
0 x21 x22 --- --- 0  u2 2
[X]n = --- --- --- --- --- --- --- et []n = ---
--- --- --- --- --- --- --- ---
0 xn1 xn2 --- --- xnn  un n
   --- --- 
f 0n f 1n f 2n --- --- 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.

Page 14 CFAO
Modélisation de courbes et de surfaces

De la relation [18.11], on déduit immédiatement :

[]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.

2.2.4- 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

M.RADOUANI@ensam-umi.ac.ma
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]

Les fonctions Bin (u) = Cin . ui . (1 – u)n-i 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).

Page 15 CFAO
Modélisation de courbes et de surfaces

La figure 10 suivante présente la formule et la représentation des familles de polynômes de


Bernstein, pour n = 3, n = 4 et n = 5

‫محم د رض واين‬
1 Polynômes de Bernstein : n =3
B0
Bo = – u3 + 3 u2 –3u +1
B1
B1 = 3 u3 – 6 u2 +3u
B2
B2 = – 3 u3 + 3 u2
B3
B3 = u3

1 Polynômes de Bernstein : n = 4
B0
Bo = u4 – 4 u3 + 6 u2 –4u +1
B1
B2
B1 = – 4 u4 + 12 u3 – 12 u2 +4u
B2 = 6 u4 – 12 u3 + 6 u2

M.RADOUANI@ensam-umi.ac.ma
B3
B4 B3 = + 4 u3
– 4 u4
B4 = u4

1 Polynômes de Bernstein : n = 5
B0
B1
Bo = –u5 +5u4 –10u3 +10u2 –5u +1
B2 B1 = +5u5 –20u4 +30u3 –20u2 +5u
B3
B2 = –10u5 +30u4 –30u3 +10u2
B4
B5 B3 = 10u5 –20u4 +10u3
B4 = –5u5 +5u4
B5 = u5

Figure 10. Familles de polynômes de Bézier, pour n = 3, n = 4 et n = 5

2.2.5- Expression analytique des B-Spline

Vecteur nodal T = [t0, t1, ... ti, ... tk] suite de nombres réels.

Page 16 CFAO
Modélisation de courbes et de surfaces

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.

2.2.6- 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

 m, Ni,m (t) = [(t  ti) / (ti+m  ti)] . Ni,m-1 (t) + [(ti+m+1  t) / (ti+m+1  ti+1)] . Ni+1,m-1 (t)
convention 0/0 = 0

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

M.RADOUANI@ensam-umi.ac.ma
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 :

1 N0,1 N1,1 N0,2


0.75
0.5

t
0 1 2 3 0 1 2 3

Page 17 CFAO
Modélisation de courbes et de surfaces

2.2.7- 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)

M.RADOUANI@ensam-umi.ac.ma
1

N0,3 (t)

0,5
R23 R13

R33 R03
0
0 1 2 3 4

u u
0 1 0 1

2.2.8- 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)

Page 18 CFAO
Modélisation de courbes et de surfaces

‫محم د رض واين‬
B03 B33

B13 B23

u
0 1

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)

M.RADOUANI@ensam-umi.ac.ma
N3,2 (t) = 0 N3,2 (t) = 25/9 (t-2/5)2
1

B03 B33

B13 B23

u
0 1

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

S1
t=2/5

S2
P(t)
S0
t=0

t=0
S3

Page 19 CFAO
Modélisation de courbes et de surfaces

2.2.9- Algorithme de De Casteljau

L’algorithme de De Casteljau est basé sur l'idée suivante : u [0, 1], dans la figure ci-dessous,

‫محم د رض واين‬
u = 0,4. Le point 10 appartient à la polyligne [01], le point 11 appartient à la polyligne [12],
…, et le point 14 appartient à la polyligne [45].

Les nouveaux points sont en bleu et numérotés 1i. La position du point 10 est déterminée par :

M.RADOUANI@ensam-umi.ac.ma
u = 010/01 = 111/12 = 212/23 =313/34 = … = 0,4

Le point 20 appartient à la polyligne [1011], le point 21 appartient à la polyligne [1112],


…, et le point 23 appartient à la polyligne [1314]. Les nouveaux points sont en rouge et
numérotés 2i. La position du point 20 est déterminée par :

u = 1020/1011 = 1121/1112 = 1222/1213 =1323/1314 = … = 0,4

et ainsi de suite, l’application de ce processus permet de déterminer la position du point P(0,4)


sur la courbe de Bézier. La dernière polyligne du réseau De Casteljau est le segment tangent
à la courbe de Bézier au point P(0,4).

Page 20 CFAO

Vous aimerez peut-être aussi