Vous êtes sur la page 1sur 25

INF6800Conception géométrique assistée

par ordinateur et visualisation

CHAPITRE IV
Courbes B-Splinaires et NURBS

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 2

1- Courbes B-Splines
Nous passons maintenant à la définition de courbes utilisant les
fonctions de base définie précédemment. Une courbe B-Spline de
degré p est définie comme:
n
X
C(u) = Ni,p (u)Pi a ≤ u ≤ b
i=0

où l’ensemble des {Pi } sont les points de contrôle et les {Ni,p (u)}
sont les fonctions de base B-Splinaires de degré p définies sur le
vecteur nodal non-périodique (et non-uniforme):

U = {a, · · · , a, up+1 , · · · , um−p−1 , b, · · · , b}


| {z } | {z }
p+1 p+1

comprenant m + 1 noeuds.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 3

Évaluation de la courbe
Le calcul d’un point sur la courbe B-Spline pour une valeur de u
donnée implique les étapes suivantes:
1. Déterminer l’intervalle qui contient u,
2. Calculer les fonctions de base non-nulles,
3. Multiplier les valeurs des fonctions de bases non-nulles par les
coordonnées des points correspondants.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 4

2- Propriétés des courbes B-Splines


En utilisant les propriétés des fonctions de base B-Spline, on peut
montrer les 11 propriétés suivantes des courbes B-Splines:
P1 Si n = p et U = {0, · · · , 0, 1, · · · , 1}, alors C(u) est une
courbe de Bézier,
P2 C(u) est une courbe polynômiale par morceaux (étant donné
que les Ni,p sont des fonctions polynômiales par morceaux).
Le degré p, le nombre de points de contrôle n + 1, et le
nombre de noeuds sont reliés par

m=n+p+1

P3 Les points aux extrémités de la courbe sont interpolés,

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 5

Propriétés des courbes B-Splines (suite)


P4 Invariance affine: on peut appliquer une transformation affine à
la courbe en appliquant la transformation aux points de
contrôle: soit Φ une transformation qui applique IR3 dans IR3
de la forme:
Φ(r) = Ar + v
Avec A une matrice 3X3 et v un vecteur.
P5 Propriété de l’enveloppe convexe: la courbe est contenue dans
l’enveloppe convexe de ses points de contrôles. En fait, si
u ∈ [ui , ui+1 ), p ≤ i ≤ m − p − 1 alors C(u) est contenue
dans l’enveloppe convexe des points Pi−p · · · Pi .
Exemple: Pour constuire une courbe quadratique contenant un
segment de droite, il suffit de rendre trois points Pi−1 , Pi , Pi+1
colinéaires, et la courbe contiendra alors un segment de droite.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 6

Propriétés des courbes B-Splines (suite)


P6 Propriété de modification locale: déplacer Pi change C(u)
seulement sur l’intervalle [ui , ui+p+1 ),
P7 Le polygône de contrôle représente une approximation linéaire
par morceaux de la courbe. Plus le degré p est bas, meilleure
est l’approximation de la courbe par le polygône de contrôle.
P8 En se déplaçant le long de la courbe de u = 0 à u = 1, les
fonctions Ni,p agissent comme des “commutateurs”. Quand u
dépasse un noeud, une fonction s’éteind et une autre s’allume.
P9 Propriété de la diminution de variation: aucun plan n’a plus
d’intersection avec la courbe qu’avec le polygône de contrôle.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 7

Propriétés des courbes B-Splines (suite)


P10 La continuité et la différentiabilité de C(u) sont liées à celles
des fonctions Ni,p . C(u) est donc infiniment différentiable
entre les noeuds, et au moins p − k fois différentiable a un
noeud de multiplicité k.
P11 Il est possible (et parfois utile) d’utiliser plusieurs points de
contrôles successifs coïncidents. La courbe reste continue,
mais la grandeur du vecteur tangent tombe à 0.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 8

3- Dérivée d’une courbe B-Spline


Soit C (k) (u) la k ieme dérivée de C(u). Si u est fixé, on peut
obtenir C (k) (u) en calculant la k ieme dérivée des fonctions de base:
n
X (k)
C (k) (u) = Ni,p (u)Pi
i=0

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 9

Dérivée d’une courbe B-Spline (suite)


Pour la 1ere dérivée on a:
n
X
C 0 (u) = 0
Ni,p (u)Pi
i=0
n  
X p p
= Ni,p−1 (u) − Ni+1,p−1 (u) Pi
i=0
u i+p − u i u i+p+1 − u i+1

n−1
!
X Pi+1
= p Ni+1,p−1
i=−1
ui+p+1 − ui+1
n
!
X Pi
− p Ni+1,p−1
i=0
ui+p+1 − ui+1
n−1
X (Pi+1 − Pi )
= p Ni+1,p−1
i=0
ui+p+1 − ui+1

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 10

Dérivée d’une courbe B-Spline (suite)


n−1
X
C 0 (u) = Ni+1,p−1 (u)Qi
i=0
avec
p(Pi+1 − Pi )
Qi =
ui+p+1 − ui+1
En redéfinissant U 0 = {0, · · · , 0, up+1 , · · · , um−p−1 , 1, · · · , 1} On
| {z } | {z }
p p
montre facilement que Ni+1,p−1 calculé sur U est égale à Ni,p−1
calculée sur U 0 . La dérivée d’une courbe B-Spline est donc
elle-même une courbe B-Spline.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 11

4- Définition des courbes NURBS


Il existe un certain nombre de types de courbes et de surfaces
importantes qui ne peuvent pas être représentées précisément à
l’aide de polynômes, par exemple:
➣ Les coniques (cercles, ellipses, hyperboles, cones),
➣ Les sphères et les surfaces de révolution,
➣ etc.
On sait cependant que les coniques peuvent être représentées à
l’aide de fonctions rationnelles.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 12

Définition des courbes NURBS


On peut étendre la définition des courbes B-Splines afin d’utiliser
des fonctions de base rationnelles. On introduit le concept des
courbes NURBS (Non-Uniform Rational B-Splines) définies
comme suit: Pn
i=0 Ni,p (u)wi Pi
C(u) = P n
i=0 Ni,p (u)wi
où les Pi sont les points de contrôle, les wi les poids, et les Ni,p (u)
sont les fonctions de base B-Splinaires de degré p définies sur un
vecteur nodal non-uniforme

U = {a, · · · , a, up+1 , · · · , um−p−1 , b, · · · , b}


| {z } | {z }
p+1 p+1

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 13

Définition des courbes NURBS


Si l’on écrit
Ni,p (u)wi
Ri,p (u) = Pn
i=0 Ni,p (u)wi
On peut réécrire la courbe sous la forme
n
X
C(u) = Ri,p (u)Pi
i=0

où les Ri,p sont les fonctions de base rationnelles. Ce sont des


fonctions rationnelles par morceaux sur u ∈ [a, b].

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 14

5- Propriétés des fonctions NURBS


Les propriétés suivantes peuvent être déduites des propriétés des
bases B-Splinaires et de la définition des fonctions Ri,p :
1. Non-négativité: Ri,p (u) ≥ 0 ∀i, p et u ∈ [0, 1].
Pn
2. Partition de l’unité: i=0 Ri,p (u) = 1 ∀u ∈ [0, 1].
3. R0,p (0) = Rn,p (1) = 1.
4. Pour p > 0, Ri,p (u) atteind exactement un maximum sur
l’intervalle u ∈ [0, 1]. De
5. Support local: Ri,p (u) = 0 pour u 6∈ [ui , ui+p+1 ]. De plus,
dans un intervalle donné, au plus p + 1 fonctions Ri,p sont
non-nulles.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 15

Propriétés des fonctions NURBS (suite)

6. Toutes les dérivées des Ri,p (u) existent à l’intérieur d’un


intervalle, où Ri,p est une fonction rationnelle avec un
dénominateur non-nul. À un noeud, Ri,p est p − k fois
différentiable continument, avec k la multiplicité du noeud.
7. Si wi = 1 ∀i, alors Ri,p = Ni,p ∀i. Les Ni,p sont donc un cas
particulier des Ri,p . En fait, pour n’importe quel a 6= 0, si
wi = a ∀i, alors Ri,p = Ni,p ∀i.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 16

Propriétés des courbes NURBS


Ces propriétés des fonctions de base entraînent les caractéristiques
géométriques suivantes des courbes NURBS:
8. C(0) = P0 et C(1) = Pn .
9. Les courbes NURBS sont invariantes sous une transformation
affine, incluant la projection(projeter les points de contrôle ou
la courbe est équivalent ).
10. Propriétés de l’enveloppe convexe: si u ∈ [ui , ui+1 ), alors
C(u) est contenue dans l’enveloppe convexe des points de
contrôle Pi−p · · · Pi .
11. C(u) est infiniment différentiable à l’intérieur d’un intervalle,
et p − k fois différentiables à un noeud de multiplicité k.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 17

Propriétés des courbes NURBS (suite)

12. Propriété de diminution de variation: aucun plan n’a plus


d’intersection avec la courbe qu’avec le polygône de contrôle.
13. Une courbe NURBS sans noeud intérieur est une courbe de
Bézier rationnelle, les NURBS sont donc une généralisation
des courbes de Bézier, des courbes de Bézier rationnelles et
des B-Splines.
14. Approximation locale: si le point Pi ou le poids wi sont
modifiés, la courbe n’est affectée que dans l’intervalle
u ∈ [ui , ui+p+1 ).

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 18

6- Contrôle de forme des NURBS


La propriété 14 à des conséquences importantes au niveau des
possibilités offertes par les NURBS comme outil de design: en
utilisant les NURBS, un concepteur peut utiliser non seulement la
position des points de contrôle, mais aussi la valeur de chaque
poids pour contrôler localement la forme de la courbe.
Qualitativement, l’effet d’augmenter le poids associé à un point tire
la courbe vers le point, alors que lorsque le poids est diminué, la
courbe s’éloigne du point.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 19

Contrôle de forme des NURBS (suite)


Par ailleurs, le mouvement de C(u) pour un u donné se fait le long
d’une ligne droite:
P2 P3
W=10
W=1
Soit:
W=0 N
B = C(u; w3 = 0) et
P1 B N = C(u; w3 = 1)
P0 P 4 La droite passant par B et
N passe aussi par P3 , et
pour n’importe quel w3 , un
point B3 = C(u; w3 ) se
situe toujours sur le seg-
ment de droite reliant B à
P5 P3 .

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 20

7- Coordonnées homogènes
Les coordonnées homogènes fournissent une autre méthode très
pratique pour représenter les courbes NURBS.
Si l’on considère P un point dans l’espace euclidien P = (x, y, z),
on peut écrire P comme P w = (wx, wy, wz, w) = (X, Y, Z, W )
dans un espace quadri-dimensionnel, w 6= 0.
P est ainsi obtenu en divisant les coordonnées de P w par w,
c’est-à-dire en faisant une application de P w à partir de l’origine
sur l’hyperplan W = 1.

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 21

Coordonnées homogènes
Si nous notons cette application H, il s’agit d’une application
perspective avec son centre à l’origine:

P = H{P w } = H{(X, Y, Z, W )}

 (X, Y , Z ) si W 6= 0
W W W
=
 direction(X, Y, Z) si W = 0

Pour un ensemble de points de contrôle {Pi } et de poids {wi }, on


construit les points de contrôle pondérés,
Piw = (wi xi , wi yi , wi zi , wi ).

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 22

Coordonnées homogènes
La courbe NURBS peut dorénavant s’écrire comme une courbe
polynomiale (non-rationnelle) en quatre dimensions:
n
X
C w (u) = Ni,p (u)Piw
i=0

En appliquant H à la courbe C w , on obtient la courbe B-Spline


rationnelle correspondante:
n
X
C(u) = H{C w (u)} = H{ Ni,p (u)Piw }
i=0
Pn
i=0 Ni,p (u)wi Pi
= Pn
i=0 Ni,p (u)wi
n
X
= Ri,p (u)Pi
i=0

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 23

Interprétation géométrique de la
coordonnée homogène
Si l’on considère l’espace homogène à trois dimensions (X, Y, W ),
on peut illustrer l’application H qui transforme la courbe C w (u)
définie dans l’espace homogène en une courbe rationnelle dans
l’espace euclidien.
W

w=1

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 24

8- Dérivées des courbes NURBS


Les dérivées des courbes NURBS sont compliquées à calculer
puisqu’elles impliquent la dérivée de fonctions rationnelles. En
utilisant la forme homogène, on arrive à simplifier l’expression:
w(u)C(u) A(u)
C(u) = =
w(u) w(u)
où A(u) est une fonction vectorielle correspondant aux trois
premières coordonnées de C w (u). Alors,

0 w(u)A0 (u) − w0 (u)A(u)


C (u) =
w(u)2
w(u)A0 (u) − w0 (u)w(u)C(u)
=
w(u)2
A0 (u) − w0 (u)C(u)
=
w(u)

INF6800– François
c Guibault– 2003
IV – Courbes B-Splinaires et NURBS
IV – 25

Dérivées des courbes NURBS


Dans le cas général, pour la dérivée d’ordre k, on a:
 
Pk k
Ak −   wi (u)C (k−i) (u)
i=1
k
i
C (u) =
w(u)
La dérivée de la projection n’est pas équivalent à la projection de la
dérivée.

INF6800– François
c Guibault– 2003