Sie sind auf Seite 1von 29

Page 71

Chapitre 2

Modélisation des courbes et surfaces

Contenu du chapitre
1 Courbes de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.1 Présentations . . . . . . . . . . . . . . . . . . . . . . . . . 72
1.2 Propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.3 Dérivées des courbes de Bézier . . . . . . . . . . . . . . . 77
1.4 Expression matricielle des courbes de Bézier . . . . . . . . 78
2 Courbes spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2 Dérivée des courbes de spline . . . . . . . . . . . . . . . . 82
2.3 Problème de la continuité . . . . . . . . . . . . . . . . . . . 82
2.3.1 Raccordement C 1 . . . . . . . . . . . . . . . . . 82
2.3.2 Raccordement C 2 . . . . . . . . . . . . . . . . . 83
2.4 Courbes B-spline . . . . . . . . . . . . . . . . . . . . . . . 84
3 Interpolation par des B-splines . . . . . . . . . . . . . . . . . . . 86
3.1 Cas des B-splines C1 . . . . . . . . . . . . . . . . . . . . . 87
3.2 Cas général . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4 Surfaces de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.1 Liens entre interpolation bilinéaire et Bézier . . . . . . . . . 90
4.2 Approche intuitive des surfaces de Bézier . . . . . . . . . . 91
4.2.1 Construction par l’algorithme de de Casteljau . . 91
4.2.2 L’approche “produit tensoriel” . . . . . . . . . . 92
4.3 Définition des surfaces de Bézier . . . . . . . . . . . . . . . 93
4.4 Dérivées et normale . . . . . . . . . . . . . . . . . . . . . 96
4.5 Continuité de surfaces composées . . . . . . . . . . . . . . 96

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
1 - C OURBES DE B ÉZIER Page 72

5 Surfaces de révolution . . . . . . . . . . . . . . . . . . . . . . . . 97

1 Courbes de Bézier
Une courbe de Bézier est un segment de courbe polynômiale de degré n définie à
partir d’un ensemble de n + 1 points {Pi }i=0...n dit ”de contrôle” qui interpole les deux
points extrêmes (P0 et Pn ) et qui approxime les autres. Nous donnons tout d’abord une
idée du mode de construction de ces polynômes avant d’en donner une définition plus
générale.

1.1 Présentations
Considérons 3 points P0 , P1 et P2 de R3 . La courbe de Bézier B0,1,2 (t) définie à
partir de ces points se construit à partir de deux polynômes en faisant varier t entre 0
et 1. :

B0,1 (t) = (1 − t)P0 + tP1


B1,2 (t) = (1 − t)P1 + tP2
B0,1,2 (t) = (1 − t)B0,1 (t) + tB1,2 (t)

B0,1 (t) (resp. B1,2 (t)) est l’interpolation linéaire entre P0 et P1 (resp. entre P1 et
P2 ). La courbe de Bézier B0,1,2 (t) est l’interpolation linéaire entre B0,1 (t) et B1,2 (t).
A noter que le t utilisé varie en même temps dans les trois équations. Graphiquement,
elle se traduit comme indiqué sur la figure 2.1. Les points B 0,1 (t), B1,2 (t) et B0,1,2 (t)
y sont représentés pour t = 23 . Ce procédé de construction est connu sous le nom
d’algorithme de de Casteljau.

On peut obtenir l’équation mathématique complète de cette courbe en remplaçant


les expressions de B0,1 et de B1,2 dans B0,1,2 :

B0,1,2 (t) = (1 − t)2 P0 + 2t(1 − t)P1 + t2 P2

qui est l’équation d’un segment de parabole pour t ∈ [0, 1]. Cette équation peut
également s’interpréter comme une somme pondérée des points P 0 , P1 et P2 dépendante

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 73

P1

B0,1(t)

B0,1,2(t) B1,2(t)

P0 P2

F IG . 2.1 – Construction d’une courbe de Bézier à 3 points. Les valeurs des polynômes B 0,1 (t), B0,1,2 (t)
et B1,2 (t) sont exprimés pour t = 23 .

(1-t)2 t2
1

2t(1-t)

0 t
0 1

F IG . 2.2 – Courbe de Bézier : fonction de pondération pour 3 points

du paramètre t. L’importance de cette pondération est représentée figure 2.2 en fonc-


tion de la valeur de t. On notera que la modification d’un des points entraı̂ne une
modification complète de la courbe.
La construction se généralise à n points en utilisant les polynômes de Bernstein.

Définition (Polynômes de Bernstein) Les polynômes de Bernstein de degré n sont


définis par :
 
n i
n
bi (t) = t (1 − t)n−i où i ∈ {0, . . . , n} .
i

On peut remarquer que ces polynômes ont la particularité d’être construits de façon

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
1 - C OURBES DE B ÉZIER Page 74

similaire à la binomiale1. Ils permettent d’obtenir une forme analytique directe des
courbes de Bézier.

Définition Une courbe de Bézier de degré n définie à partir de n+ 1 points {P i }i=0..n


sur t ∈ [0, 1] s’écrit :


n n  
n i
Bn (t) = bni (t)Pi = t (1 − t)n−i Pi
i=0 i=0
i

On notera que cette courbe est définie même si t n’appartient pas à [0, 1], mais elle
n’est pas contrôlée à l’extérieur de cet intervalle. Plusieurs exemples de courbes sont
présentés figure 2.3.
L’algorithme de construction de de Casteljau ci-dessus se généralise facilement à
un nombre de points quelconques comme le montre l’exemple suivant. Le polygone
engendré par l’ensemble des points {Pi }i=0..n est appelé polygone de Bézier (ou poly-
gone de contrôle).



Exemple

2 Prenons

les 5 points suivants

:
P 0 = 0 −1 , P 2 = 2 −3 , P3 =
5 0 , P4 = 4 3 et P5 = 0 4 . En utilisant l’algorithme de de Casteljau,
on obtient la figure 2.4.

1.2 Propriétés
Les courbes de Bézier ont les propriétés suivantes :
1. Points extrêmes et points de contrôles.
Comme nous le signalions déjà, une courbe de Bézier commence en P0 et se
termine en Pn (i.e. Bn (0) = P0 et Bn (1) = Pn ). Cette propriété associée au
rôle des autres points de contrôle permet de créer aisément de façon interactive
(i.e. sur un ordinateur) une courbe de Bézier en déplaçant ceux-ci. On peut noter
sur les exemples figure 2.3, que le polygone de contrôle définit en l’exagérant le
comportement de la courbe.
1
Les polynômes de Bernstein ont la particularité de satisfaire l’équation de récurrence suivante :
⎧ 0
⎨ b0 (t) = 0
bn (t) = 0 si j ∈/ {0, . . . , n}
⎩ in
bi (t) = (1 − t)bn−1 n−1
i−1 (t) + tbi−1 (t)
n n
et de vérifier la propriété i=0 bi (t) = 1.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 75

F IG . 2.3 – Exemples de courbes de Bézier.

2. Invariance par transformation affine :


Soit f (x) = A.x + b une transformation affine. Alors, on a2 :

n
f (Bn (t)) = bni (t)f (Pi)
i=0

Donc, effectuer une transformation affine d’une courbe de Bézier Bn (t) est
équivalent à effectuer une transformation de ses points de contrôle {P i }i=0...n
puis à calculer la courbe de Bézier à partir de ces points.
3. Enveloppe convexe
2
Démonstration évidente par linéarité de la transformation affine et par propriété des polynômes de
Bernstein. On peut également donner une démonstration géométrique en notant que l’algorithme de de
Casteljau construit la courbe de Bézier par une succession de barycentre et que ceux-ci sont conservés
par transformation affine.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
1 - C OURBES DE B ÉZIER Page 76

P2

P3

P1

P4
P0

1
F IG . 2.4 – Courbe de Bézier : construction pour 5 points et t = 3.

Une courbe de Bézier est contenue dans l’enveloppe convexe de ses points de
contrôle (voir figure 2.5).

F IG . 2.5 – Enveloppe convexe d’une courbe de Bézier

Ceci est dû au fait que les points de la courbe de Bézier sont obtenus par une
succession de combinaisons convexes à partir des points de contrôle (exemple
pour la première étape, B0,1 (t) = (1 − t)P0 + tP1 avec t ∈ [0, 1], donc B0,1 (t)
se trouve entre P0 et P1 ). Cette propriété a deux conséquences importantes :
– si les points de contrôle sont coplanaires, alors la courbe de Bézier correspon-
dante vit sur le plan défini par ses points de contrôle.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 77

– si on veut tester l’intersection entre deux courbes de Bézier, on peut commen-


cer par tester si leurs enveloppes convexes s’intersectent. La complexité de ce
test est faible et permet donc de déterminer très rapidement si les deux courbes
ont une chance de s’intersecter.
4. Symétrie
La symétrie des polynômes de Bernstein (i.e. bni (t) = bnn−i (1 − t)) implique que
la courbe de Bézier définie par les points {P0 , P1 , . . . , Pn } est la même que celle
définie par les points pris dans l’ordre inverse {Pn , Pn−1 , . . . , P0 }.
5. Invariance par transformation affine des paramètres

u−a pour t ∈ [0, 1]. En appli-
Initialement, une courbe de Bézier Bn (t) est définie
quant la transformation t = u−a
b−a
, la courbe B n b−a avec u ∈ [a, b] définit la
même courbe de Bézier. Cette invariance est importante pour les courbes splines
(voir la section 2).

1.3 Dérivées des courbes de Bézier


Les dérivés des courbes de Bézier ont des propriétés intéressantes pour leurs com-
préhensions et leurs manipulations.

Proposition 2.1 Soit Bn (t) une courbe de Bézier à n + 1 points {Pi }i=0...n . Alors,

dBn (t)  n−1


=n ∆Pi .bn−1
i (t)
dt i=0

avec ∆Pi = Pi+1 − Pi (on remarquera que ∆Pi est un vecteur).




i (t)
dbn
Cette proposition se démontre en remarquant que dt = n bni−1 (t) − bni (t) , ce
qui conduit directement au résultat en remplaçant dans l’expression de la dérivée :
dBn (t)  dbni (t)
dt
= ni=0 dt .Pi .
La dérivée d’une courbe de Bézier conduit à une autre courbe de Bézier (cette fois-
ci dans le plan vectoriel) obtenue en ”differentiant” le polygone des points de contrôle
original. Ceci a deux conséquences :
n (0) n (1)
– Cette forme permet de vérifier que dBdt = n.∆PO et dBdt = n.∆Pn−1 . La
courbe de Bézier est donc tangente au vecteur P0 P1 (resp. Pn−1 Pn) en P0 (resp.
Pn ).
– Puisque l’opération dérivée est stable sur l’ensemble des courbes de Bézier, les
expressions des dérivées d’ordre supérieur s’obtiennent facilement en utilisant

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
1 - C OURBES DE B ÉZIER Page 78

itérativement la proposition 2.1. En toute généralité, la dérivée k ème d’une courbe


de Bézier est :
dk Bn (t) n! 
n−k
= ∆k Pi .bn−k (t)
dk t (n − k)! i=0 i



avec ∆k Pi = ∆k−1 Pi+1 − ∆k−1 Pi = kj=0 kj (−1)k−j Pi+j .

Exemple 3 L’expression de la dérivée seconde d’une courbe de Bézier est :


d2 Bn  n−2
(t) = n. (n − 1) ∆2 Pi .bn−2 (t)
d2 t i=0
i

avec ∆2 Pi = ∆Pi+1 − ∆Pi .


Les dérivées secondes en 0 et en 1 sont :
d2 Bn
d2 t
(0) = n. (n − 1) . (∆Pn−1 − ∆Pn−2 )
d2 Bn
d2 t
(1) = n. (n − 1) . (∆P1 − ∆P0 )

1.4 Expression matricielle des courbes de Bézier


Une courbe de Bézier peut s’écrire sous forme matricielle de la fa çon suivante
(on rappelle que les Pi sont des points, de R3 par exemple, et que les bni (t) sont des
scalaires dépendant d’un paramètre t) :

n
Bn (t) = bni (t)Pi
i=0
⎡ ⎤
bn0 (t)
 ⎢
⎢ bn1 (t) ⎥

= P0 P1 . . . Pn ⎢ .. ⎥
⎣ . ⎦
bnn (t)
Or, la courbe de Bézier étant un polynôme de degré n, on souhaite obtenir une
écriture utilisant

n i explicitement les puissances de t. En dévellopant l’expression de
bi (t) = i t (1 − t)n−i en utilisant la formule du binome de Newton sur (1 − t) n−i ,
n

on obtient : ⎡ ⎤ ⎡ ⎤
bn0 (t) 1
⎢ bn (t) ⎥ ⎢ t ⎥
⎢ 1 ⎥
⎢ .. ⎥ = Mn . ⎢ ⎥
⎣ t2 ⎦
⎣ . ⎦
bnn (t) t3

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 79


n
i
où Mn est la matrice dont les coefficients mij sont définis par mij = (−1)j−i j j
.

Exemple 4 Dans le cas où n = 3, on obtient dans R3 en notant (xi , yi , zi ) du point


Pi :

B3 (t) = (1 − t)3 P0 + 3t (1 − t)2 P1 + 3t2 (1 − t)P2 + t3 P3


⎡ ⎤⎡ ⎤
⎡ ⎤ 1 −3 3 −1 1
x0 x1 x2 x3 ⎢
0 3 −6 3 ⎥ ⎢
⎥ ⎢ t2 ⎥

= ⎣ y0 y1 y2 y3 ⎦ ⎢ ⎣ 0 0 3 −3 ⎦ ⎣ t ⎦
z0 z1 z2 z3
0 0 0 1 t3

Cette expression est intéressante car les modèles de courbes paramétriques peuvent
s’écrirent sous forme matricielle, ce qui permet d’en avoir une approche générique
lorsqu’il s’agit de les évaluer.

2 Courbes spline
Les courbes de Bézier sont des outils puissants mais dont le principal inconvénient
est que le degré des courbes augmente avec le nombre de points de contrôle ; leur
coût de calcul devient donc prohibitif dès que le nombre de points de contrôle devient
important (on ne dépasse pas 10 en pratique). L’idée des courbes splines est qu’une
courbe complexe peut être obtenue en construisant une fonction par morceau à partir
d’un ensemble de courbes simples (i.e. de degré peu élevé). Un intérêt immédiat de
ce mode de construction est que le changement de la position d’un point de contrôles
n’aura plus qu’un impact limité sur la fonction obtenue. Cette localité se paye par la
nécessité de gérer les problèmes de continuité (jonction entre morceaux).

2.1 Présentation
Nous donnons tout de suite une définition ainsi que les notations qui seront utilisées
dans cette partie.

Définition Soit u0 < u1 < . . . < uL une suite de réels ordonnés ; soit Ui l’intervalle
défini par Ui = [ui−1 , ui]. Soit Si (t) une courbe de Bézier (t ∈ [0, 1]).
Alors la courbe spline S(u) définie sur [u0 , uL ] à partir des courbes de Bézier

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
2 - C OURBES SPLINE Page 80

{Si (t)}i=1..L est définie par :


L
u − ui
S(u) = Si ( ).IUi (u)
i=1
ui+1 − ui


⎨ S1 ( uu−u 0
1 −u0
) si u ∈ U1
.. ..
= . .

⎩ S ( u−uL−1 ) si u ∈ U
L uL −uL−1 L

où IA (u) est la fonction indicatrice définie par IA (u) = 1 si u ∈ A et à 0 sinon


(voir figures 2.6 et 2.7).

F IG . 2.6 – Morceau de courbe de Bézier dans une spline

Pour reprendre la définition, la courbe S(u) est définie sur l’intervalle [u0 , uL].
Cet intervalle est subdivisé en un ensemble d’intervalles [u i−1, ui ]. Sur l’intervalle
[ui−1 , ui], la spline S(u) est égale à la courbe de Bézier Si (t) (avec une variable t
différente de u car une courbe de Bézier n’est définie que si 0 ≤ t ≤ 1). On effectue
donc le changement de paramètre t = uu−u i−1
i −ui−1
de façon à ce que S(ui−1 ) = Si (0)
et que S(ui) = Si (1) (ce changement de paramètre est l’application affine qui trans-
forme l’intervalle [ui−1 , ui] en l’intervalle [0, 1] et ne change en rien chaque courbe de
Bézier).
Par la suite, on appellera ui un noeud et S(ui ) = Si (1) = Si+1 (0) un point de
jonction, et l’union des polygones de Bézier des S i le polygone de Bézier par morceau.
On notera δi = ui − ui−1 la largeur de l’intervalle Ui .

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 81

On voit que cette construction pose le problème de la jonction des différents mor-
ceaux de la spline, car, a priori, rien n’assure la continuité en chaque point de jonction
si les courbes de Bézier sont quelconques. Une première condition évidente pour que
la spline soit continue est que S i (1) = Si+1 (0) ; ce qui signifie géométriquement que
le premier point de contrôle de Si+1 et le dernier point de contrôle de Si doivent être
confondus. Ceci implique que les polygones de Bézier de chaque Si forment un seul
polygone composé par morceau. On note {Pj } l’ensemble des points de contrôle de la
spline.
Ceci assure une continuité d’ordre 0. Nous allons étudier les conditions qui doivent
être imposées aux courbes de Bézier qui composent la spline afin d’obtenir certains
niveaux de continuités aux points de jonction. Mais commençons par les expressions
des dérivées des fonctions splines.

F IG . 2.7 – Méthode de construction d’une spline.

F IG . 2.8 – Le contrôle local apporté par les splines.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
2 - C OURBES SPLINE Page 82

2.2 Dérivée des courbes de spline


L’expression de la dérivée de la spline s’exprime en fonction des courbes de Bézier
qui la composent :

Proposition 2.2 Soit S(u) une courbe spline définie comme ci-dessus. Alors, ses déri-
vées sont :
– Pour la dérivée d’ordre 1 : soit u ∈ Ui ,
dS(u) dSi (t) dt 1 dSi(t)
= =
du dt du δi dt
– Pour la dérivée d’ordre 2 : soit u ∈ Ui ,
 2
d2 S(u) d2 Si (t) dt 1 d2 Si (t)
= =
d2 u d2 t du δi2 d2 t
Le facteur δ1i provient du changement de paramètre t = uu−u i−1
i −ui−1
, qui conduit à
dt 1
du
= δi .
On remarquera qu’en chaque point de jonction ui , S(u) possède une dérivée à
gauche dépendant de Si et une dérivée à droite dépendant de Si+1 . Par exemple, pour
la première dérivée, on a :
" dS(u− )
du
i
= δ1i dSdti (1)
dS(u+
i ) 1 dSi+1 (0)
du
= δi+1 dt

Les autres points de la spline sont C ∞ car les Si sont tous des polynômes.

2.3 Problème de la continuité


On fera comme hypothèse simplificatrice que le nombre de points de contrôle de
chaque courbe de Bézier Si est égal à n pour tout i.

2.3.1 Raccordement C 1
Pour la spline S(u), la continuité C 1 se traduit en chaque noeud ui par3 (cf prop.
2.2) :
1 dSi 1 dSi+1
(1) = (0) (2.1)
δi dt δi+1 dt
3
On rappelle qu’une courbe f (x) est continue en a si f (a − ) = f (a+ ) où f (a− ) (resp. f (a+ ))
est la limite de f en tendant vers a par valeurs inférieures (resp. supérieures). On rappelle également
qu’une courbe f (x) est C 1 en a si sa dérivée f  (x) est continue en a.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 83

qui assure qu’en ui la spline S a la même dérivée à gauche et à droite. Soit Pj le


point de contrôle4 de S associé au noeud ui .
Or, on a vu que pour une courbe de Bézier B de points de contrôle P0 . . . Pn ,
dB
dt
(0) = n.∆PO et dB dt
(1) = n.∆Pn−1 . Ici, le premier point de contrôle de Si et le
dernier point de contrôle de Si+1 sont confondus ; et ce point de contrôle est P j . Par
conséquent, dSi
dt
(1) = n.∆Pj−1
dSi+1
dt
(0) = n.∆Pj
En remplaçant dans l’équation 2.1, on obtient :
1 1
.∆Pj−1 = .∆Pj (2.2)
δi δi+1

F IG . 2.9 – Condition de continuité C 1 sur une B-spline

Cette équation implique que :


– les vecteurs Pj−1 Pj et Pj Pj+1 doivent être colinéaires.
– si le pas entre chaque noeud ui est constant (δi = δi+1 ), alors les deux vecteurs
doivent être de même norme : |∆Pj−1 | = |∆Pj |.
– si le pas entre chaque noeud ui n’est pas constant, alors le rapport entre les deux
vecteurs dépend du rapport des longueurs5 de Ui et de Ui+1 .

2.3.2 Raccordement C 2
Sachant que toute courbe C 2 est C 1 , la condition trouvée dans la section précédente
est donc nécessaire. Pour la continuité C 2 , elle se traduit en chaque noeud ui par (cf
4
La notation Pj est justifié par le fait que le nombre de noeuds (indice i) n’est pas le même que
le nombre de points de contrôle. Il y a une courbe de Bézier entre deux points de jonction, et chaque
courbe de Bézier possède plusieurs points de contrôle. Une notation plus correcte aurait été j(i) pour
marquer la dépendance entre les deux indices.
5
Cela peut être interprété physiquement comme la correction sur la vitesse qu’un point parcourant
la courbe S doit effectuer pour progresser à la même vitesse sur S i (t) et Si+1 (t).

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
2 - C OURBES SPLINE Page 84

prop. 2.2) :
1 d 2 Si 1 d2 Si+1
(1) = (0)
δi2 d2 t 2
δi+1 d2 t
qui assure que la dérivée seconde de S est continue. En notant comme ci-dessus P j
le point de contrôle de S associé au noeud ui , et en utilisant les propriétés de la dérivée
seconde d’une courbe de Bézier, on a (voir exemple 3 ) :
" 2
d Si
d2 t
(1) = n. (n − 1) . (∆Pj−1 − ∆Pj−2 )
d2 Si+1
d2 t
(0) = n. (n − 1) . (∆Pj+1 − ∆Pj )

d’où on tire en y ajoutant l’équation 2.2,


" 1 1
δi
.∆Pj−1 = δi+1 .∆Pj
1 1
δ2
(∆Pj−1 − ∆Pj−2 ) = 2
δi+1
(∆Pj+1 − ∆Pj )
i

Cette condition est présentée graphiquement à la figure 2.10.

(a) Cas général (b) Cas uniforme

F IG . 2.10 – Condition de continuité C 2 sur une spline

2.4 Courbes B-spline


L’idée des courbes B-splines (pour de Boor) est de construire une courbe de spline
sur la base de points de contrôle {Bi } et des noeuds {ui} possédant un niveau de
continuité déterminé (C 1 ou C 2 ) tel que :
– le degré de chaque courbe de Bézier composant la spline est fixe.
– un seul point de contrôle extérieur est donné par courbe de Bézier.
– la spline ainsi construite est unique.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 85

Proposition 2.3 (courbe B-spline C 1 ) Soit {Qi }i=1..L un ensemble de points de con-
trôle, soit {ui }i=1..L une liste des noeuds. Alors une courbe B-spline C 1 peut se construi-
re comme composition de courbes de Bézier à 3 points {P2i−1 , P2i , P2i+1 }. Les points
{Pi }i=1..2L−3 sont déterminés comme suit :

P2i = Qi+1
P2i+1 = δi +δ1i+1 [δi+1 Qi+1 + δi Qi+2 ]

en conservant les mêmes points de contrôles extrêmes.


Démonstration: La conditions de continuité C 1 fixe une condition au point de jonc-
tion et ses deux voisins immédiats. Par conséquent, 3 points de contrôle pour chaque
courbe de Bézier suffisent pour construire une courbe B-spline.
La condition C 1 au point de jonction P2i+1 (ses voisins immédiats sont P 2i = Bi+1
et P2i+2 = Bi+2 ) s’écrit en reprenant l’équation 2.2 :
1 1
. (P2i+1 − Bi+1 ) = . (Bi+2 − P2i+1 )
δi δi+1

d’où :
1
Pj = [δi+1 Bi+1 + δi Bi+2 ]
δi + δi+1


Proposition 2.4 (courbe B-spline C 2 ) Soit {Qi }i=1..L un ensemble de points de con-
trôle, soit {ui }i=1..L une liste de noeuds. Alors une courbe B-spline C 2 peut se construi-
re comme composition de courbes de Bézier à 4 points {P3i , P3i+1 , P3i+1 , P3i+2 }. Les
points {Pi }i=1..2L−3 sont déterminés comme suit :

⎨ P3i = δi−11+δi [δi P3i−1 + δi−1 P3i+1 ] pour les points de jonction
P = 1 [(δ + δi ) Qi−1 + δi−2 Qi ]
⎩ 3i−1 1δ i−1
P3i−2 = δ [(δi−1 + δi ) Qi−1 + δi−2 Qi ]

avec δ = δi−2 + δi−1 + δi .


La démonstration est laissée en (difficile) exercice, elle utilise un principe similaire
au cas C 1 , en reprenant les conditions de la continuité C 2 pour une spline (cf section
2.3.2). La principale différence avec ce qui précède provient du fait que les points de
contrôle de chaque courbe de Bézier composant la B-spline sont généralement tous
différents des points de contrôle Qi (sauf pour les points extrêmes).

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
3 - I NTERPOLATION PAR DES B- SPLINES Page 86

Dans le cas général (courbe B-spline de continuité C k ), la façon la plus simple


d’aborder ce type de spline est de considérer les bases de fonctions B-spline qui sont
des généralisations des polynômes de Bernstein.

Proposition 2.5 (Fonction B-spline de continuité C k ) On considère une fonction B-


spline comportant n points de contr ôle Qi . Soit u0 < u1 < . . . < un la liste des noeuds
associés. Soit k un entier positif strictement inf érieur à n.
Alors la courbe B-spline de continuité C k est donnée par :

n
S(u) = Qi Ni,k+1(u)
i=1

pour u0 ≤ u ≤ un et où Ni,k est la base des fonctions B-spline définies récursivement
par :

⎨ N (u) = 1 si ui ≤ u < ui+1
i,1
0 sinon
⎩ N (u) = u−ui N (u) + ui+k −u N (u)
i,k ui+k−1 −ui i,k−1 ui+k −ui+1 i+1,k−1

La continuité se montre facilement en montrant qu’aux noeuds u i , la fonction S(u)


est C k . Le principe de construction de la courbe de Bézier sous-jacente à chaque Ni,k
est quand à lui beaucoup plus complexe.

3 Interpolation par des B-splines


L’interpolation est le procédé qui permet, connaissant un certain nombre de points
Ai , de trouver la courbe qui passe par ces points. On voit qu’il s’agit du problème
inverse aux questions que l’on se posait dans les deux parties précédentes :
– Pour la courbes de Bézier et les B-spline, on dispose des points de contrôle {P i },
et on cherche la courbe répondant aux contraintes que ceux-ci fixent.
– Pour les courbes interpolées, on dispose d’un ensemble de points {A i } par les-
quels la courbe passe, et on cherche les points de contrôle de la courbe de Bézier
ou de la B-spline qui passe par ces points (i.e. les {Ai }).
Nous allons tout d’abord étudier un modèle simple : l’interpolation cubique de
l’Hermite qui permet d’effectuer des interpolations C 1 par morceaux.
On se pose le problème suivant (voir figure 2.11) :

Problème 2.6 Soit {Ai }i=0..p un ensemble de p + 1 points, sa liste de noeuds associ és
{ui }i=0..p , et leurs vecteurs tangents {Vi }i=0..p . Trouver la spline S(u) de continuité

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 87

C 1 (de plus petit degré) telle que :



S(ui) = Ai
dS
du
(ui) = Vi

F IG . 2.11 – Interpolation : ce que l’on cherche à faire.

3.1 Cas des B-splines C 1


Proposition 2.7 On construit la courbe S(u) de façon unique à partir d’une spline
dont chaque courbe de Bézier {Si }i=0..p−1 a 4 points de contrôle {P3i , P3i+1 , P3i+2 , P3(i+1) }
définis par : ⎧

⎪ P3i = Ai

P3i+1 = Ai + ui+13−ui .Vi

⎪ P3i+2 = Ai+1 − ui+13−ui .Vi+1

P3(i+1) = Ai+1
Ce choix se justifie facilement (voir figure 2.12). En fait, on place les extrémités de
chaque courbe de Bézier Si en Ai et Ai+1 . Puis, autour de chaque point Ai (= P3i ), on
règle les positions des points libres à gauche (P 3i−1 ) et à droite (P3i+1 ) de façon à ce
que la tangente à gauche et à droite de Ai soit la même (ce qui implique la continuité
C 1 ), et que cette tangente soit égale à Vi .
Ceci signifie que sur la courbe S :
dS(u−i ) dS(u+i )
= = Vi
du du
En Ai se trouve l’extrémité de deux courbes de Bézier Si−1 et Si . Cette condition
se réécrit en reprenant l’équation 2.1 (en notant δi = ui+1 − ui ) :
1 dSi−1 1 dSi
(1) = (0) = Vi
δi−1 dt δi dt

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
3 - I NTERPOLATION PAR DES B- SPLINES Page 88

F IG . 2.12 – Construction de la B-spline pour la continuité C 1

Par ailleurs, en reprenant l’expression de la dérivée d’une courbe de Bézier à 4


points(voir proposition 2.1), on a :

dSi−1 dSi
(1) = 3. (A3i − A3i−1 ) et (1) = 3. (A3i+1 − A3i )
dt dt
Ceci implique que :
1
δi−1
.3. (A3i − A3i−1 ) = Vi
1
δi
.3. (P3i+1 − P3i ) = Vi

et conduit directement au résultat ci-dessus.


Cette interpolation a le nom d’Hermite car cette interpolation peut se réécrire (et a
été à l’origine écrite) sous forme d’une somme pondéré de polynômes d’Hermite.

3.2 Cas général


La présentation de la forme générale des courbes B-splines introduite à la propo-
sition 2.5 va nous permettre de résoudre dans le cas général l’interpolation de courbes
définies par un ensemble de points et un ordre de continuité dans le cas général.

Proposition 2.8 Soient {Ai }i=1...n un ensemble de points et soient {u i } l’ensemble


des noeuds associées. Alors l’ensemble des points p de contr ôle {Qj }j=1...p passant
par les {Ai } et définissant une B-spline de continuité C k est donné par :

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 89

– si n = p alors Q = Nk−1 .A.


– si n < p alors Q = (Nkt .Nk )−1 .Nkt .A.
où A, Q et Nk sont les matrices contenant respectivement les points à interpoler, les
points de contrôle et les coefficients des B-splines aux noeuds considérés (pour plus
de détails, voir la démonstration).
Démonstration: On rappelle qu’une courbe B-spline s’écrit :

n
S(u) = Qj Nj,k+1(u)
j=1

Les contraintes fixées ci-dessus donnent l’ensemble de contraintes suivant :

S(ui) = Ai pour tout i

Cet équation se réécrit :

A1 = Q1 .N1,k+1 (u1 ) + Q2 .N2,k+1 (u1 ) + . . . + Qp .Np,k+1 (u1)


A2 = Q1 .N1,k+1 (u2 ) + Q2 .N2,k+1 (u2 ) + . . . + Qp .Np,k+1 (u2)
..
.
An = Q1 .N1,k+1 (un ) + Q2 .N2,k+1 (un ) + . . . + Qp .Np,k+1 (un )

On exprime ce système d’équations sous forme matricielle :

A = Nk .Q

avec
 
A = A1 A2 . . . An
 
Q = Q1 Q2 . . . Qp
⎡ ⎤
N1,k+1 (u1 ) ... ... Np,k+1(u1 )
⎢ .. .. .. ⎥
⎢ . . . ⎥
Nk = ⎢ . .. ⎥
⎣ .. ..
. . ⎦
N1,k+1 (un ) ... ... Np,k+1(un )

La solution est alors obtenue de la façon suivante :


– Si p = n, alors la solution est directement :

A = Nk−1 .Q

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
4 - S URFACES DE B ÉZIER Page 90

– Si p < n (ce qui est généralement le cas, on donne plus de points que nécessaire),
alors la matrice N n’est plus triangulaire. On utilise alors la technique du pseudo-
inverse :
A = Nk .B ⇒ Nk t .Q = Nk t .N.Q
La matrice Nk t .Nk est une matrice carrée, d’où :

Q = ( Nk t .N)−1 . Nk t .A

Dans ce cas, la solution n’assure pas que la courbe obtenue passe exactement
par les points Ai .
Un exemple dans ces deux cas est présenté figure 2.13. 

(a) Cas p = n. (b) Cas p < n.

F IG . 2.13 – Approximation d’un ensemble de points par une B-spline

En pratique, on connait seulement les points A i . La position des noeuds peut être
estimée en utilisant la longueur de la corde reliant les A i . En fixant u1 = 0 et un = 1,
on prend pour i ≥ 2 : i
j=2 Aj−1 Aj
ui = n
j=2 Aj−1 Aj

où Aj−1 Aj est la distance entre les points Aj−1 et Aj .

4 Surfaces de Bézier
4.1 Liens entre interpolation bilinéaire et Bézier
De même qu’une courbe de Bézier se construit à partir de successions d’interpo-
lations linéaires de Bézier, une surface de Bézier se construit à partir de successions
d’interpolations bilinéaires.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 91

Si on considère 4 points P00 , P10 , P01 et P11 de R3 , alors l’interpolation bilinéaire


entre ces points forme une surface :

B(u, v) = u.(v.P00 + (1 − v).P01 ) + (1 − u).(v.P10 + (1 − v).P11 ) (2.3)

La surface est la surface de Bézier engendrée par les 4 points P00 , P10 , P01 et P11
(voir figure 2.14.

F IG . 2.14 – Une surface des Bézier à quatre points coı̈ncide avec l’interpolation bilinéaire.

4.2 Approche intuitive des surfaces de Bézier


Les surfaces de Bézier se construisent à partir de la déformation d’une grille de
points. Si cette grille est de taille n × p de points, on note ces points P ij avec i ∈
{0, . . . , n − 1} et j ∈ {0, . . . , p − 1}. On appelle carreau de la grille, le “quadrilatère”
constitué de quatre points adjacents sur la grille : {P ij , Pi+1,j , Pi,j+1, Pi+1,j+1}.

4.2.1 Construction par l’algorithme de de Casteljau


La figure 2.15 montre l’adaptation de l’algorithme de de Casteljau présenté pour
les courbes de Bézier pour la construction de surfaces de Bézier.
Si on considère un ensemble de points de contrôle constitué de n × p points, alors
le point de la surface de Bézier associé aux paramètres (u, v) se construit de la façon
suivante. Pour tous les carreaux de la surface, on calcule l’interpolation bilinéaire cor-
respondant au point (u, v) ; ceci permet d’obtenir un ensemble de nouveaux points qui

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
4 - S URFACES DE B ÉZIER Page 92

F IG . 2.15 – Surface de Bézier : construction par l’algorithme de de Casteljau

F IG . 2.16 – Surface de Bézier : approche par produit tensoriel.

définissent à leurs tours un ensemble de carreaux (à la première étape : n − 1 × p − 1).


On recommence alors itérativement le processus jusqu’à ne plus obtenir qu’un seul
point.

4.2.2 L’approche “produit tensoriel”


Soit {Pij }, un ensemble n × p points de contrôle. Soit B i (u) la courbe de Bézier
obtenue en utilisant les points de contrôle {P ij }j∈{1,...,p}. Considérons maintenant la
courbe de Bézier Bu (v) construite à partir des points de contrôle Bi (u)i∈{1,...,n} . Alors,

B(u, v) = Bu (v)

La surface de Bézier s’obtient en générant l’ensemble des courbes de Bézier dont

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 93

les points de contrôle suivent des trajectoires définies par d’autres courbes de Bézier.

4.3 Définition des surfaces de Bézier


L’équation 2.3 se réécrit sous forme matricielle :
   
  P00 P01 1−v
B(u, v) = 1 − u u . .
P10 P11 v

On reconnaı̂t dans les matrices de gauche et de droite les polynômes de Bernstein


vus dans la partie sur les courbes de Bézier (u = b10 (u) et 1 − u = b11 (u)).

F IG . 2.17 – Notations pour les surfaces de Bézier.

Si on considère maintenant des grilles (n + 1) × (p + 1) de points P ij , alors cette


écriture se généralise comme :
⎡ p ⎤
  b0 (v)
  P00 P0p ⎢ ⎥
B(u, v) = bn0 (u) . . . bnn (u) . . ⎣ ... ⎦
Pn0 . . . Pnp
bpp (v)

et peut également s’écrire comme une double somme :


n 
p
B(u, v) = Pij .bni (u).bpj (v) (2.4)
i=0 j=0

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
4 - S URFACES DE B ÉZIER Page 94

(a) Polygone de contrôle. (b) Surface de Bézier obtenue à partir du po-


lygône de contrôle (a).

(c) Autre exemple

F IG . 2.18 – Exemples de surfaces de Bézier représentés avec leurs polygones de contrôle.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 95

Le figure 2.17 donne le lien entre les notations ci-dessus et une surface de Bézier.
Quelques exemples de surfaces de Bézier sont ensuite présentés à la figure 2.18.
Les propriétés des surfaces de Bézier découlent directement de celles des courbes
de Bézier :
– Une surface de Bézier est invariante par transformation affine
La surface est construite (de Casteljau) par compositions successives d’interpo-
lations bilinéaires et linéaires ; comme ces opérations sont invariantes par trans-
formation affine, il en va de même pour leur composition.
– Une surface de Bézier est contenue dans l’enveloppe convexe formée par ses
points de contrôle.
On observe que les polynômes de Bernstein ont pour propriétés :
n p n p
i=0 j=0 bi (u).bj (v) = 1
0 ≤ bni (v) ≤ 1 pour tout 0 ≤ i ≤ n et pour tout n

La première propriété est une conséquence directe de ni=0 bni (u) = 1 (on fac-
torise).
Par conséquent, l’équation 2.4 nous montre qu’une surface de Bézier est une
combinaison barycentrique des points de contrôles P ij avec des poids compris
entre 0 et 1. Ceci implique que le barycentre obtenu est nécessairement “entre”
les Pij et donc que ceux-ci délimitent la zone où ce barycentre peut se situer.
– Les bords d’une surface de Bézier sont des courbes de Bézier dont les extrémités
passent par les points P00 , Pn0 , P0p et Pnp .
Cette propriété est évidente si l’on a lu la section 4.2.2.
– Le déplacement d’un point de contrôle entraı̂ne une déformation de toute la sur-
face.
Un exemple est présenté à la figure 2.19.

F IG . 2.19 – Effet du déplacement d’un point de contrôle sur une surface de Bézier.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
4 - S URFACES DE B ÉZIER Page 96

4.4 Dérivées et normale


La proposition suivante se démontre simplement en reprenant les propriétés des
polynômes de Bernstein vues dans la partie sur les courbes de Bézier.

Proposition 2.9 (Dérivées partielles à une surface de Bézier) On a :

∂B  n p−1
(u, v) = p (Pi,j+1 − Pi,j ).bni (u).bp−1
j (v)
∂u i=0 j=0

∂B  n−1 p
(u, v) = n (Pi+1,j − Pi,j ).bn−1
i (u).bpj (v)
∂v i=0 j=0

On notera que Pi,j+1 − Pi,j et Pi+1,j − Pi,j sont des vecteurs.


La normale s’obtient alors simplement en calculant le produit vectoriel :
∂B ∂B
NB (u, v) = (u, v) ∧ (u, v)
∂u ∂v

4.5 Continuité de surfaces composées


La formulation en terme de produit tensoriel de la section 4.2.2 donne une bonne
idée du travail à réaliser pour ajuster deux surfaces avec une continuité C k . On reprend
les notations de cette partie en notant B et B  les deux surfaces de Bézier que l’on
cherche à joindre. On suppose pour simplifier que les surfaces ont le même nombre de
points de contrôle (soit n × p) et que l’ajustement des surfaces se fait sur un coté ayant
le même nombre de points de contrôle.
Pour la continuité C 0 , les courbes de Bézier sur le bord en commun doivent coı̈nci-
der :
B(0, v) = B  (1, v) pour tout v ∈ [0, 1]
Comme ces deux courbes de Bézier ont le même nombre de points de contrôle, elles
coı̈ncident quand ceux-ci sont confondus. La continuité C 0 implique donc que la courbe
de Bézier Bi sur la surface B est prolongée par la courbe de Bézier Bi sur la surface
B  (pour tout i). Pour les points de contrôle, ceci implique l’égalité :

P0j = Pnj

où Pij et Pij sont les points de contrôle des surfaces B et B  .


Pour les continuités d’ordre supérieur, il suffit donc de considérer le degré de conti-
nuité des courbes Bi ∪ Bi pour tout i. De manière similaire à ce qui avait été fait avec

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 97

(a) Colinéarité des lignes (b) Coplanarité des arètes

F IG . 2.20 – Continuité C 1 entre deux surfaces de Bézier.

les courbes de Bézier pour définir les B-splines, on peut utiliser des surfaces de Bézier
de degré fixé pour engendrer des surfaces complexes en conservant des degrés raison-
nables pour les polynômes.
On peut montrer qu’une autre condition pour la condition C 1 s’exprime dans la
coplanarité des arêtes sur le bord de la surface (voir figure 2.20).

5 Surfaces de révolution
Les surfaces de révolution sont un moyen simple d’engendrer des surfaces à partir
de polygone ou de courbes planaires. On considère une courbe P (t) défini par :
 
x(t)
P (t) =
y(t)

Alors la surface de révolution obtenue par rotation de cette courbe autour de l’axe des
x a pour équation (voir aussi figure 2.21) :
⎡ ⎤
x(t)
S(t, φ) = ⎣ y(t). cos φ ⎦
y(t). sin φ

Cette expression peut se réécrire comme un produit matriciel en coordonnées ho-

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
5 - S URFACES DE R ÉVOLUTION Page 98

F IG . 2.21 – Principe d’une surface de révolution.

mogènes : ⎡ ⎤ ⎡ ⎤
1 0 0 0 x(t)
⎢ 0 cos φ 0 0 ⎥ ⎢ y(t) ⎥
S(t, φ) = ⎢
⎣ 0
⎥.⎢ ⎥
sin φ 0 0 ⎦ ⎣ 0 ⎦
0 0 0 1 1
Nous donnons quelques exemples sur les figures 2.23, 2.22 et 2.24.

(a) Figure de base. (b) Surface de révolution.

F IG . 2.22 – Exemple de surface de révolution définie à partir d’une courbe de Bézier.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE
C HAPITRE 2 - M OD ÉLISATION DES COURBES ET SURFACES Page 99

(a) La figure de base est en grisé. (b) Surface de révolution.

F IG . 2.23 – Exemple de surface de révolution définie à partir d’un polygone.

(a) Points de contrôle. (b) Courbe B-spline. (c) Surface de révolution.

F IG . 2.24 – Exemple de surface de révolution définie à partir d’une courbe B-spline.

PASCAL M IGNOT O PTION S YNTH ÈSE D ’ IMAGES


U NIVERSIT É DE R EIMS M A ÎTRISE D ’ INFORMATIQUE

Das könnte Ihnen auch gefallen