Vous êtes sur la page 1sur 124

RÉPUBLIQUE ALGÉRIENNE DÉMOCRATIQUE ET POPULAIRE

MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR


ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITÉ DE KASDI MERBAH OUARGLA
FACULTE DES SCIENCES ET SCIENCE DE TECHNOLOGIE ET
SCIENCE DE MATIÈRE
DEPARTEMENT DE MECANIQUE

MEMOIRE DE MASTER
PRESENTE POUR OBTENIR LE DIPLOME

DE MASTER
Spécialité : Génie Mécanique
Option : Maintenance Industrielle
PAR

OUMAYA Barkat et BIDARI Abdellah


___________________

Réduction de Degré des Courbes Gauches (Cas d’Usinage des


Surfaces Complexes)
___________________
Soutenu au Juin 2011
Devant le jury :

T. Ameur MAA Uinversité de Ouargla Président


Dj. Necib MAA Uinversité de Ouargla Examinateur
Dj. Damene MAB Uinversité de Ouargla Examinateur
A. BELLOUFI MAB Uinversité de Ouargla Encadreur

ANNEE UNIVERSITAIRE 2010 / 2011


Dédicaces

Dédicaces

Ce travail modeste est dédié :

À ma chère mère ;

À la mémoire de mon père ;

À tous mes proches de la famille Oumaya, et plus


particulièrement, mes sœurs et mes frères tout à son nom et sans
oublier les familles Talbi, Barkat et Bidari ;

À tous mes chers amis et mes collègues de l’Université de


Ouargla ;

Et à tous ce qui ont enseigné moi au long de ma vie scolaire ;

Barkat
Dédicaces

Dédicaces

Je dédie ce modeste travail :

À ma belle-mère ;

À la mémoire de mon père ;

À mes proches de mes frères et mes sœurs, chacun à son nom ;

À mon ami Oumaya Barkat ;

À toute la famille ;

À tous mes amis ;

À tous mes chers enseignants qui ont enseigné moi ;

Abdellah
Remerciements

Remerciements

Tout d’abord, nous remercions le Dieu, notre créateur de nos avoir donné les forces, la
volonté et le courage afin d’accomplir ce travail modeste.

Nous adressons le grand remerciement à notre encadreur qui a proposé le thème de ce


mémoire, pour ses conseils et ses dirigés du début à la fin de ce travail.

Nous tenons également à remercier messieurs les membres de jury pour l’honneur qu’ils
nos ont fait en acceptant de siéger à notre soutenance, tout particulièrement :

Mr Ameur pour nous avoir fait l’honneur de présider le jury de cette mémoire.

Nous souhaitons exprimer notre gratitude à Mr. Necib et à Mme. Damene pour avoir faire
de lecteur notre mémoire, aller l’examiner et ils peuvent évaluer cette mémoire. Nous vous
remercions pour l’intérêt que vous avez porté à ce travail et pour vos précieux conseils et
remarques.

Finalement, nous tenons à exprimer notre profonde gratitude à nos familles qui nous ont
toujours soutenues et à tout ce qui participe de réaliser ce mémoire. Ainsi que l’ensemble des
enseignants qui ont contribué à notre formation.
Table des matières

Table des Matières

I.Introduction Génerale.................................................................................................................... 1

Chapitre I
Modélisation mathématique

I.1 Introduction ...............................................................................................................................3


I.2 Courbe de Bézier .......................................................................................................................3
I.2.1 Utilité et découverte des courbes de Bézier ...........................................................................4
I.2.2 La conception de Bézier .........................................................................................................4
I.2.3 Définition (courbe de Bézier polynomiale)............................................................................5
I.2.4 Propriétés des polynômes de Bernstein ..................................................................................7
I.2.5 Propriétés des courbes de Bézier............................................................................................8
I.2.5.1 Indépendance de l'origine du repère ....................................................................................9
I.2.5.2 Interpolation aux extrémités (End point Interpolation) .......................................................9
I.2.5.3 Tangentes aux extrémités ....................................................................................................9
I.2.5.4 Invariance par transformation affine et rotation ................................................................10
I.2.5.5 L’enveloppe convexe ........................................................................................................11
I.2.5.6 Contrôle local (pseudo-local) ............................................................................................11
I.2.5.7 Moyenne de courbe de Bézier ...........................................................................................11
I.2.5.8 Approximation de Weierstrass ..........................................................................................12
I.2.5.9 Augmentation du degré .....................................................................................................12
I.2.6 L'algorithme de De Casteljau ...............................................................................................13
I.2.7 Dérivée d'une courbe de Bézier............................................................................................15
I.2.7.1 Expression par polynôme de Bernstein .............................................................................15
I.2.7.2 Calcul de la dérivée par l’algorithme de De Casteljau ......................................................15
I.2.8 Sensibilité d'une courbe de Bézier .......................................................................................16
I.2.9 Avantages et inconvénients des courbes de Bézier ..............................................................16
I.2.10 Courbes de Bézier rationnelles ...........................................................................................16
I.2.11 Raccords de courbes de Bézier ..........................................................................................17
I.2.11.1 Principe…. .......................................................................................................................17
I.2.11.2 Avantages et inconvénients .............................................................................................19
I.3 Les B-Splines ..........................................................................................................................19
Table des matières

I.3.1 Motivations ..........................................................................................................................19


I.3.2 Fonctions de base de B-spline : ............................................................................................20
I.3.2.1 Idée……… ........................................................................................................................20
I.3.2.2 Bases B-Splines N i ,k (t ) ....................................................................................................20
I.3.2.3 Etude des fonctions de base ..............................................................................................21
I.3.3 Courbes B-Splines ................................................................................................................22
I.3.3.1 Propriétés des courbes B-splines .......................................................................................23
I.3.4 Algorithme de Cox-De Boor ................................................................................................26
I.3.5 Courbes B-spline rationnelles ..............................................................................................28
I.3.6 Avantages et inconvénients ..................................................................................................28
I.4 Surfaces, Carreaux de Bézier ..................................................................................................29
I.4.1 Interpolation bilinéaire et algorithme de De Casteljau.........................................................30
I.4.2 Produit tensoriel (Réseaux de courbes de Bézier)................................................................32
I.4.3 Surfaces de Bézier rationnelles ............................................................................................33
I.5 Surfaces B-splines ..................................................................................................................34
I.5.1 Réseau de courbes B-splines ................................................................................................35
I.5.2 Surfaces B-spline rationnelles ..............................................................................................35
I.6 Conclusion ...............................................................................................................................36

Chapitre II
Algorithmique des transformations

II.1 Introduction ............................................................................................................................37


II.2 Transformations dans le modèle de Bézier ............................................................................37
II.2.1 Subdivision .........................................................................................................................37
II.2.2 Elévation de degré...............................................................................................................38
II.2.3 Réduction de degré .............................................................................................................39
II.2.4 Raccordement des courbes ..................................................................................................43
II.3 Transformations dans le modèle B-spline..............................................................................44
II.3.1 Algorithme d’insertion de nœuds de Boehm ......................................................................45
II.3.2 Suppression de nœuds .........................................................................................................46
II.3.3 Subdivision et l’algorithme d’Oslo .....................................................................................49
II.3.4 Changement de base ...........................................................................................................51
II.3.5 Algorithme WM ..................................................................................................................53
Table des matières

II.4 Conclusion .............................................................................................................................55

Chapitre III
Réduction de degré des courbes de Bézier
III.1 Introduction ..........................................................................................................................56
III.2 Etat de l’art ...........................................................................................................................56
III.3 Principe de Réduction de degré ...........................................................................................57
III.3.1 Méthode de Forrest ............................................................................................................59
III.3.1.1 Algorithme de réduction .................................................................................................59
III.3.1.2 Algorithme de sub-réduction ..........................................................................................63
III.3.2 Méthode de Bensalah ........................................................................................................66
III.3.2.1 Algorithme de réduction .................................................................................................66
III.3.2.2 Algorithme de sub-réduction ..........................................................................................67
III.3.3 Méthode de Hoschek .........................................................................................................70
III.3.3.1 Paramétrisation intrinsèque ............................................................................................71
III.3.3.2 Réduction de degré .........................................................................................................72
III.3.4 Méthode d’Eck ..................................................................................................................73
III.4 Conclusion ............................................................................................................................77

Chapitre IV
Application: Génération de trajectoires d'outils

IV.1 Introduction ..........................................................................................................................79


IV.2 Génération de trajectoires d’outils par plans de coupe.........................................................80
IV.3 Recherche des intersections « carreau de surface/plan de coupe » ......................................81
IV.4 Calcul de l’intersection «carreau de surface subdivisée/plan de coupe » ............................84
IV.5 Application à la génération de trajectoires d’outil ...............................................................87
IV.6 Conclusion ............................................................................................................................88
V. Conclusion Génerale................................................................................................................ 89
Liste de figures

Liste des figures

Chapitre I
Modélisation mathématique

Figure I.1 Classe et degré d’une courbe de Bézier ………………………...………………. 3


Figure I.2 Déformation d’un espace à 2 dimensions ………………………………………. 5
Figure I.3 Déformation d’un espace à 3 dimensions …….……………………………….... 5
Figure I.4 Organigramme simplifié pour construire la matrice M B …….………............... 7

Figure I.5 Homothétie et Enveloppe convexe ………………...…………………………… 10


Figure I.6 Augmentation du degré de n =3 à n =4……………………………..……...…… 12
Figure I.7 Calcul d’un point C(t) d’une courbe de Bézier (a) et le schéma de l’algorithme
de De Casteljau (b)……………………………………………………………… 14
Figure I.8 Organigramme explique le dessin en 2D d’une courbe de Bézier par algorithme
de De Casteljau ………...……………………………………………………….. 14
Figure I.9 Courbe de Bézier de degré 6 …...………………………………………………. 15
Figure I.10 Schéma du raccord de 2 courbes de Bézier …………………………..………… 18
Figure I.11 Organigramme simplifie la procédure de raccordement de class C 0 ……..…… 18

Figure I.12 Raccord C 0 de deux courbes …………………………………………….……… 19

Figure I.13 Schéma récursif pour les N, …..……………………………………………… 20


Figure I.14 Fonctions de base B-spline avec k = 3 …………………………………………. 21
Figure I.15 Multiplicité des nœuds.…………...…………………………………………….. 21
Figure I.16 B-splines avec multiplicité des nœuds ( k = 3 )…………………………………. 24
Figure I.17 Interpolation des points de contrôle par répétition des points ……………..…… 25
Figure I.18 Correspondance Bézier & B-spline ………………………….…………………. 26
Figure I.19 Calcul d’un point C (t ) d’une courbe B-spline de degré 2 (a) et le schéma de
l’algorithme de Cox-De Boor (b) ………………………………………………. 27
Figure I.20 Organigramme de dessin d’une B-spline de degré p …………………………... 28
Figure I.21 Carreau de Bézier……………………………………………………………….. 29
Figure I.22 Interpolation bilinéaire et surfaces de Bézier…………………………………… 30
Figure I.23 Carreau de Bézier bilinéaire avec m = n = 3 ……………………………......... 31
Figure I.24 Surface de Bézier complexe………………………………………………….…. 32
Figure I.25 Décomposition d’une surface de Bézier en courbes……………………………. 32
Figure I.26 Organigramme simplificateur de processus de génération d’une surface de
Bézier……………………………………………………………………………. 33
Liste de figures

Chapitre II
Algorithmique des transformations

Figure II.1 Courbe de Bézier non rationnelle P(t ) de degré 5 subdivisée en deux courbes

R(t ) et Q(t ) de même degré ………………………………………….............. 38

Figure II.2 Courbe de Bézier rationnelle de degré 5 (de poids wi ) subdivisée en deux

courbes rationnelles de degré 5 (de poids α j et β k )…………………………... 38

Figure II.3 Courbe de Bézier non rationnelle de degré 3 élevée au degré 5……………….. 39
Figure II.4 Courbe de Bézier non rationnelle de degré 3 réduite au degré 2 par les deux
méthodes de polygone 1 et 2……………………………………..……............. 43
Figure II.5 Courbe précédente de degré 3 réduite par la méthode du polygone moyen
(Méthode de Farin) ……………………………………………………………... 43
Figure II.6 Courbe de Bézier rationnelle de degré 6 réduite au degré 5 par la méthode du
polygone moyen w = {1,1, 2, 0.8, 0.5, 0.8,1.2,1} , w ' = {1,1.304, 0.516, 0.516,1.304,1} …..... 43
Figure II.7 Schéma de l’algorithme de l’insertion d’un nœud de multiplicité s de Boehm. 46
Figure II.8 la courbe avant la suppression de nœud t = t5 …………………………….…… 48

Figure II.9 la courbe après la suppression de nœud t = t5 = 1 ……………………………... 48

Figure II.10 Polygone de contrôle final avec T = {0, 0, 0,0, 2, 2, 2, 2} ……………………… 49

Figure II.11 Suppression d’un nœud pour une courbe B-spline rationnelle de degré 4……… 49
Figure II.12 Le nouveau polygone de contrôle Qi obtenu par l’algorithme Oslo1 en insérant
deux nouveaux nœuds.......................................................................................... 50
Figure II.13 Courbe B-spline de degré 3 avec T = {0, 0, 0, 0,1, 2, 3, 3, 3, 3} .............................. 52

Figure II.14 Courbe B-spline de degré 3 avec T = {0, 0, 0, 0,1,1,1, 2, 2, 2, 3, 3, 3, 3} ……..…...... 52

Figure II.15 Courbes de Bézier de degré 3….………………………………………………... 52

Chapitre III
Réduction de degré des courbes de Bézier

Figure III.1 Organigramme de conversion par approximation (réduction de degré). .………. 58


Figure III.2 Courbe de Bézier de degré 6 réduite au degré 5 ………………………………... 60
Figure III.3 Erreur de position de la courbe précédente.………………………….…………. 61
Figure III.4 Variation de la courbure courbe précédente et sa courbe réduite ………….…… 61
Figure III.5 Courbe de Bézier de degré 9 réduite au degré 8 ……………………………...… 62
Liste de figures

Figure III.6 Erreur de position de la courbe précédente ………………………….…….....… 63


Figure III.7 Variation de la courbure courbe précédente et sa courbe réduite …………….… 63
Figure III.8 Courbe de degré 16 réduite en 5 courbes de degré 6…………………………..... 65
Figure III.9 Erreur de position le long de la courbe de degré 16 ……………………………. 65
Figure III.10 Courbe de degré 5 réduite au degré 4 par BEN1 et BEN2 ……..………………. 67
Figure III.11 Courbe précédente de degré 5 réduite au degré 4 par BENm ………...………. 67
Figure III.12 Courbe de degré 10 réduite en 8 courbes de degré 6 par l’algorithme SUB-
BEN…………………………………………………………………………....... 69
Figure III.13 Erreur de position pour la courbe précédente…………………………………. 70
Figure III.14 (a) Paramétrisation des points données Pi et l’erreur vectorielle Di .

(b) Projection de l’erreur vectorielle Di ……………………………………… 72

Chapitre IV
Application : Génération de trajectoires d’outils

Figure IV.1 Epaisseur proposée pour un carreau de surface bi-cubique.…………………….. 81


Figure IV.2 Organigramme descriptif le processus de recherche des intersections................ 83
Figure IV.3 Intersection « carreau surface/plan de coupe » pour des tolérances de 10mm ,
1mm et 0.01mm ……………………………………………………………...…… 84
Figure IV.4 Agrandissement de l’encadré de la figure 3 …………………………….........… 84
Figure IV.5 Intersection « plan/carreau de surface subdivisé » (Plan de coupe [P] en
trais pointillés)……………………………………………………..………….… 85
Figure IV.6 Organigramme explique le processus calcul des points d’intersection. ………. 86
Figure IV.7 Courbes (contours) d’intersection déterminées par chaînage des segments
d’intersection issus de la subdivision récursive auto-adaptative, à droite : détail
de l’encadré ……………..………...………………………………………..…… 87
Figure IV.8 Courbes (contours) d’intersection obtenues après chaînage des segments
d’intersections pour deux plans de coupe différents ….……………………....... 87
Nomenclature

Nomenclature

B i , n (t ) ième fonction Bernstein non rationnelle de degré n.


C (t ) Point d’une courbe paramétrique, modèle de Bézier ou B-Spline

Ck Continuité paramétrique d’ordre k.

Di Erreur vectorielle due à l’approximation

Ed Espace affine
e (t ) Erreurs d’approximation
f (b , t ) Fonction d’erreurs
GB Matrice géométrique de Bézier

Gk Continuité géométrique d’ordre k


Gi , n (t ) ième fonction Bernstein rationnelle de degré n.
Gi ,m; j ,n (u , t ) Fonction Bernstein rationnelle bi-variable.

H Projection conique de centre  d’une courbe B-spline de ℝ 4 ֏ ℝ 3


MB Matrice représente tous les coefficients des polynômes de Bernstein

N i ,k (t ) ième fonction de base B-spline non rationnelle de degré k.


Pi , Qi , Ri , Si pôles des courbes paramétriques.
Pi j , Qi j , Ri j , Si j Réseau de pôles des surfaces paramétriques.
Q (t , u ) Surface paramétrique, modèle de Bézier ou B-Spline.
Ri ,k (t ) ième fonction de base B-spline rationnelle de degré k.
Ri ,k ; j ,l (u , t ) Fonction de base B-spline rationnelle bi-variable.
s n ,α Facteur de turbulence

t Paramètre curviligne d’une courbe, généralement   0, 1 .


t, u Paramètres curvilignes d’une courbe, généralement ,   0, 1 

T Vecteur noeuds des courbes B-splines.

Tn (t ) Polynômes de Tchebychev de degré n


wi Poids d’une courbe rationnelle.
λi ,n Facteurs de pondération
Introduction générale

I. Introduction générale

Vers 1950 les machines outils à commandes numériques (M.O.C.N) sont arrivées [1] et ont
ouvrit des nouvelles perspectives vers la réalisation des surfaces qui ont été non réalisables ou
des usinages plus difficile avec les machines conventionnelles. Pour réaliser ces surfaces, la
C.F.A.O. utilise des systèmes et des logiciels informatiques chacun a un arsenal de modèles et
outils mathématiques pour la conception des formes divers et la fabrication. Permis ces modèle,
on distingue les modèle de Bézier, B-spline, Box-splines, Coons, NURBS,… pour les courbes et
les surfaces gauches qui sont s’exprimées sous forme des fonctions de base polynomiales.

L’un des problèmes essentiels rencontrés en C.F.A.O. est la communication et l’échange


de données entre systèmes. En effet, les systèmes mis sur le marché utilisent une grande variété
de modèles de définition des formes de bases et de degrés différents. La communication entre
ces systèmes est devenue aujourd’hui une nécessité au sein d’une entreprise en raison de la
généralisation des applications sur support informatique et de l’intérêt de la communication avec
le monde extérieur dans le cadre des relations entre commanditaires et sous-traitants. Par
conséquent, cela permettra d’éviter le risque de demeurer dépendant d’un fournisseur, de
renoncer à des actions de partenariat, de choisir le sous-traitant en fonction de son système ou lui
imposer son propre système et d’être contraint de développer des interfaces spécifiques.

Compte tenu de la multiplicité des systèmes et des fournisseurs, l’échange de données en


C.F.A.O recouvre en fait l’échange entre systèmes hétérogènes et l’échange entre différents
logiciels applicatifs puisque chaque firme est souvent équipée en fonction de ses besoins sans se
préoccuper de la redondance des données ou des tâches de ressaisie et de l’archivage de données,
car les versions successives d’un même logiciel ou la nécessité de remplacer un système posent
le problème de compatibilité. Il est donc plus rationnel de songer à des formats standards
d’échange de données. Aussi, un standard d’échange pleinement satisfaisant doit être
indépendant du matériel, du logiciel et du mode opératoire de l’exécutant. En outre, Il doit être
évolutif pour assurer la pérennité des échanges. A ce jour, divers standards d’échange de type
IGES, SET, VDA, STEP, DXF sont normalisés et sont très souvent utilisés en pratique [2].

Les systèmes de C.A.O. des courbes et des surfaces reposent sur plusieurs modèles
mathématiques cités au précédent. Ces différents modèles sont fondés sur des fonctions
polynomiales différentes et par conséquent tout transfert de données entre deux systèmes de
modèles différents nécessite un changement de base d’une part. D’autre part, la conception des
courbes et des surfaces à l’aide des systèmes C.A.O exige souvent des modèles polynomiaux de
1
Introduction générale

degré élevé. Cela se justifie aisément par la flexibilité recherchée par l’utilisateur dans la
conception de formes complexes et le respect des contraintes de conception géométriques, le
calcul de courbes définies par l’intersection de deux surfaces et des courbes Offset etc.
L’utilisateur peut en effet souhaiter pouvoir agir sur la forme de la courbe sans modifier ses
caractéristiques géométriques.

Dès lors, l’importance et l’intérêt que présente la réduction de degré réside dans la
possibilité de préserver ces avantages tout en évitant les problèmes d’instabilité liés au degré
élevé et d’incompatibilité lors d’un transfert de données vers des systèmes de F.A.O qui
fonctionnent généralement avec des degrés faibles [2].

Ce mémoire est constitué de 4 chapitres. Le premier chapitre est consacré à des rappels
préliminaires contenant les concepts mathématiques fondalentaux des courbes et des surfaces de
Bézier et B-spline.

Au deuxième chapitre, nous allons présenter les transformations mathématiques


nécessaires à la conversion par approximation, à l’application, et à l’extension de la réduction de
degré aux modèles rationnels et à la base B-spline.

Le troisième chapitre est une synthèse bibliographique approfondie des méthodes de


réduction de degré des courbes de Bézier non rationnelles, où sont présentés le principe et les
algorithmes de réduction de degré.

Au dernier chapitre de ce mémoire, nous présentons une application et essayerons d’évider


une utilisation des courbes de Bézier en C.F.A.O.

2
Chapitre I Modélisation mathématique

I.1 Introduction

Parmi les modèles mathématiques qui sont la base de la conception des courbes ou des
surfaces en C.A.O. et en C.F.A.O. (Conception, Fabrication, Assistées par Ordinateur), le
modèle de Bézier et celui des B-Splines sont les plus utilisés. L’étude du modèle de Bézier est
une introduction à celui des B-Splines, restreintes aux courbes du plan, sont suffisantes pour
comprendre l’intérêt de ces modèles dans la conception interactive des formes. Des présentations
différentes permettront de dévoiler une partie de la « boîte noire » de ces modèles [3, 4]. L’appui
sur des exemples de courbes de degré 2 ou 3 permet d’éviter une complexité calculatoire, sans
nuire aux utilisations réelles qui souvent concernent le degré 3.

Les courbes définies en coordonnées paramétriques seront développées dans ce chapitre et


dans le cadre d’étude suivant : paramètre variant dans un intervalle borné (par exemple [0 ; 1]
pour le modèle de Bézier), fonctions polynomiales (degré 2 ou 3), variations, tangente en un
point d’une courbe. L’objectif principal de ce chapitre est la compréhension des liens entre ces
modèles et la conception des formes. Il convient d’éviter les considérations théoriques hors de
cet objectif.

I.2 Courbe de Bézier

Une courbe de Bézier est définie par une équation mathématique dérivée de points
caractéristiques de la courbe. Ces points forment un brisé que l’on appelle le descripteur de la
courbe. La courbe et son descripteur ont les mêmes points de début et de fin. La courbe est
tangente au premier et au dernier segment du descripteur.

On désigne par classe C de la courbe, le nombre (n + 1) de points du descripteur. Par


exemple, une courbe de C = 4 correspond à un descripteur de 4 points. Le degré n de la courbe
équivaut au nombre de segments du descripteur et est égale à la classe moins un : n = C − 1 . Une
courbe de classe 4 est de degré 3. La classe est égale au nombre de points du descripteur.

Figure I.1 : Classe et degré d’une courbe de Bézier.

3
Chapitre I Modélisation mathématique

I.2.1 Utilité et découverte des courbes de Bézier

L'interpolation n'est pas toujours très adaptée pour certaines utilisations telles que le dessin
par ordinateur, la CAO (conception assistée par ordinateur), etc.

C'est dans le domaine de la CAO que les courbes de Bézier ont été inventées et plus
précisément dans l'industrie automobile. Dans les années 1960, les machines à commandes
numériques sont apparues, il fallait donc décrire les formes (comme les courbes de carrosserie)
avec des équations mathématiques [1].

La première solution était d'interpoler linéairement un grand nombre de points. Cette


méthode a de nombreux inconvénients :
- Pour la machine, il y a beaucoup de paramètres.
- Il est impossible d'agrandir (mais aussi de translater, de déformer, ...) une partie
d'une pièce sans rajouter de points supplémentaires.
- Placer des points n'est pas intuitif pour les designers.
- Il est très fastidieux de modifier la courbe.

Un autre procédé était donc nécessaire pour exprimer une courbe avec peu de
paramètres et que ceux ci soient naturels.

L'idée révolutionnaire des courbes de Bézier est l'utilisation de points de contrôle et


non de points d'interpolation. Cela veut dire que la courbe ne passe pas par les points
donnes mais les approche. Les courbes de Bézier ne sont donc pas des interpolations mais
des approximations [1]. Il y a plusieurs avantages à cela :
- La courbe est stable, il est facile de déformer la courbe sans résultats inattendus.
- II est facile de modifier la courbe, il ne faut que modifier les points de contrôle
qui sont peu nombreux.
- Le placement des points de contrôle est relativement évident.
- II est plus facile d'avoir une courbe naturelle, fluide, non brusquée avec des points
de contrôle qu'avec des points d'interpolation.

Et tout cela en gardant les avantages du modèle numérique (agrandissement,


déformation, etc.).

I.2.2 La conception de Bézier

La méthode de Bézier repose sur la déformation de l'espace. Nous partons d'une


courbe simple (comme un quart de cercle) sur un système d’axes. En réalité, la courbe

4
Chapitre I Modélisation mathématique

choisie par Bézier était un polynôme.


e. Puis, nous déformons l'espace, ce qui change la
courbe. La figure I.2 montre une déformation sur un quart de cercle [1].

Figure I.2 : Déformation d’un espace à 2 dimensions [1].

II est clair que la déformation


déform d’un espace un espace à deux dimensions ne permet
pas de faire toutes les transformations que nous voudrions sur la courbe. Nous passons
donc à un espace à trois dimensions. La figure I.3 montre le résultat : La courbe part du
point a au point d. Le trait définit par les points a, b, c et d correspond aux points de
contrôle (extrémités
ités et cassures). Nous « aplatissons » alors l'espace pour obtenir une
courbe en deux dimensions [1].

Figure I.3 : Déformation d’un espace à 3 dimensions [1].

Comme nous le voyons, la méthode de Bézier


Bézier est relativement complexe. II n'est pas
très facile d'obtenir l'expression de la courbe. De plus, nous obtenons un résultat qui ne
correspond pas à la forme connue et utilisée des courbes de Bézier. Nous obtiendrons
cette forme grâce à l'algorithme de De Casteljau [1].

I.2.3 Définition (courbe de Bézier polynomiale)



Soit n appartenant à ℕ − {0, 1} . Soit {Pi }0≤i ≤n et O , n + 1 points de l’espace (O , i , j ) .

5
Chapitre I Modélisation mathématique

La courbe de Bézier de degré n de points de contrôle {Pi }0≤i ≤n est l’ensemble des points C (t ) ,

t ∈ [ 0,1] vérifiant la formule paramétrique :

n
∀t ∈ 0,1 , C (t ) = ∑ Bi ,n (t ).Pi (I-01)
i =0

Les B i , n(t ) sont les polynômes de base de Bernstein sont définie par:

n!
Bi ,n (t ) = Cin .t i .(1 − t ) n −i avec Cin =
i !( n − i )!

Et les points {P i}0≤ i ≤ n définissent un polyèdre appelé polyèdre (polygone) de contrôle de la

courbe de Bézier [4].


 Programmation

Noter que nous pouvons récrire l’équation I.01 pour évaluer un point de la courbe de
Bézier de degré  sous la forme suivant :

∀t ∈ [ 0,1] , C (t ) = T .M B .GB

Où : T = (t n, t n−1,...,1) est un vecteur ligne, M B une matrice représente tous les coefficients des

polynômes de Bernstein dans l’équation (I-01) et nommée matrice de Bézier, GB est un vecteur
colonne nommé la matrice géométrique ses éléments sont les points (coordonnées) de contrôle.
Tant que T et GB sont connus, nous avons construit un programme MATLAB sous une

fonction (Bern_stein.m) qui calculer les éléments de la matrice M B . Ce programme est


représenté par l’organigramme suivant :

6
Chapitre I Modélisation mathématique

Début

>>MB= Bern_stein(n)

Bern_stein.m

n≠0
Oui Untitl.m

Calculer les éléments de matrice Calculer les éléments la


MB sauf la dernière ligne dernière ligne de matrice
MB.

Matrice MB de ( n + 1) × ( n + 1)

Fin

Figure I.4 : Organigramme simplifié pour construire M B .

L’implémentation de cette fonction pour n = 3 donne :

A l’aide de cette fonction, on peut encore tracer les courbes de Bernstein en l’associant avec
deux fonctions nommées « barkat.m et abdo_allah.m».

I.2.4 Propriétés des polynômes de Bernstein


n
• Partition de l’unité : ∀t ∈ [ 0,1] , ∑B i ,n (t ) = 1 (I-02)
i=0

En appliquant la formule du binôme de Newton [5], on obtient cette propriété :


n
1 = [ (1 − t ) + t ] = (1 − t ) n + C1n .t.(1 − t ) n −1 + ... + Cin .t i .(1 − t ) n −i + ... + t n = ∑ Bi ,n (t )
n

i =0

• Positivité : ∀t ∈ [ 0,1] , 0 ≤ i ≤ n : Bi ,n (t ) ≥ 0 (I-03)

• Symétrie : Bi ,n (t ) = Bn −i ,n (1 − t ) (I-04)

7
Chapitre I Modélisation mathématique

Bi ,n (t ) = Cin .t i .(1 − t )n −i = Cnn−i .(1 − t ) n −( n −i ) .(1 − t )n −i = Bn −i ,n (1 − t )

• Formule de récurrence :

(1 − t ).Bi , n −1 (t ) i=0



Bi ,n (t ) =  (1 − t ).Bi ,n −1 (t ) + t.Bi −1,n −1 (t ) i = 1,..., n − 1 ∀t ∈ [ 0,1] (I-05)
 t .B i=n
 i −1, n −1 (t )

et B0,0 (t ) = 1 ; Bi ,n (t ) = 0 si i ∉ {0,..., n} .

On sait que pour i = 0,..., n − 1 , on a : C in = C in −1 + C in−−11

Donc :

Bi ,n (t ) = C in.t i.(1−t ) n −i = C in −1.(1−t ) n −i.t i + C in−−11.(1−t ) n −i.t i


= (1 − t ) C in −1.(1−t ) n −i −1.t i  + t  +C in−−11.(1−t ) n −i.t i −1
= (1 − t ).Bi ,n −1 (t ) + t.Bi −1,n −1 (t )

n
• Le maximum : maxBi ,n (t ) = (I-06)
t∈[ 0,1] i

• Valeurs aux extrémités : ∀n ∈ ℕ − {0,1}, B0,n (t ) = (1−t ) n et Bn, n (t ) = t n

Donc : B0, n (0) = 1 , Bn, n (1) = 1

Et pour i ∈ {1, n} , nous avons : Bi ,n (0) = 0 , Bn −i ,n (1) = 0

 Bi ,n (0) = δ i ,0
On peut écrire :  (I-07)
 Bi ,n (1) = δ i ,n

• Dérivée :

Par cette formule de récurrence, on peut définir la dérivée du polynôme de Bernstein :

 − n.Bi ,n −1 (t ) i=0
d 
∀t ∈ [ 0,1] , Bi ,n (t ) =  n.  Bi −1, n−1 (t ) − Bi , n−1 (t )  i = 1,..., n − 1 (I-08)
dt 
n.Bi −1,n −1 (t ) i=n

I.2.5 Propriétés des courbes de Bézier

Les courbes de Bézier présentent beaucoup de propriétés intéressantes. La plupart de ces


propriétés sont très utiles voir indispensables pour des utilisations pratiques.

8
Chapitre I Modélisation mathématique

I.2.5.1 Indépendance de l'origine du repère

Si nous effectuons un changement de base, la nouvelle origine étant O ' , nous obtenons :
 n  n   n  n 
O ' C = ∑ B in.O ' P i0 = ∑ B in.(O ' O + O P i0) = ∑ B in.O ' O + ∑ B in.O ' P i0 (I-09)
i =0 i =0 i =0 i =0

Avec la propriété de la partition de l’unité, nous avons :


 n  n   n   
O ' C = ∑ B in.O ' O + ∑ B in.O ' P i0 = O ' O + ∑ B in.O ' P i0 = O ' O + O ' C (I-10)
i =0 i=0 i =0

Donc une courbe de Bézier est indépendante de l’origine [1].

I.2.5.2 Interpolation aux extrémités (End point Interpolation)

Comme nous le voyons graphiquement, une courbe de Bézier passe par le premier et le
dernier point.

C (0) = P00
On a : 
 C (1) = Pn
0

C’est une conséquence directe de la propriété valeurs aux extrémités des polynômes de
 Bi , n (0) = δ i ,0
Bernstein : 
 Bi ,n (1) = δ i ,n

Dans un logiciel de dessin, il est souvent nécessaire de relier plusieurs points avec une
courbe, la encore, cette propriété est aussi très utile de pouvoir contrôler directement les
extrémités courbe [1].

I.2.5.3 Tangentes aux extrémités

Il est possible de voir graphiquement que la tangente au début de la courbe correspond à la


droite reliant P00 à P10 . La tangente à la fin de la courbe est égale à la droite reliant Pn0 à Pn0−1 .

Nous allons le voir en utilisant la formule de la dérivée d'une courbe de Bézier que nous
venons d'étudier.

Pour t = 0 , on a : B0n −1 (0) = 1 .

d  
Donc, la tangente en   0 est égale à : OC (0) = n.P00 P10 (I-11)
dt

Ce qui correspond bien à la droite reliant P00 à P10 .

Nous pouvons appliquer la même démarche pour t = 1 et nous trouvons :


9
Chapitre I Modélisation mathématique

d  
OC (1) = n.Pn0−1 Pn0 (I-12)
dt

Les valeurs des tangentes aux extrémités sont logiques ce qui facilite l'utilisation de
courbes de Bézier. Cette propriété est très intéressante pour joindre plusieurs courbes de Bézier
sans rupture de pente [1].

I.2.5.4 Invariance par transformation affine et rotation

Une courbe de Bézier ne change pas de forme si nous lui faisons subir une transformation
affine ou une rotation

Cela s'explique grâce à la construction géométrique de De Casteljau. Nous prendrons


comme exemple une courbe de Bézier à 3 points de contrôle ( P00 , P10 , P20 ) qui subit une

transformation sur P '00 , P '10 , P '02 .

Si les trois points sont translatés, la courbe ne changera pas car la construction sera
identique [1].

Si les points de contrôle subissent une homothétie (changement d’échelle), il n'y aura pas
de changement de la forme de la courbe. En effet les rapports entre P '00 , P '10 , P '10 seront

identiques à ceux entre P00 , P10 , P01 . Les rapports sont aussi respectés avec P '10 , P '02 , P '11 et P10 , P20 , P11
. La situation est représentée dans la figure I.5(a).

La construction sera donc identique.

Figure I.5 : Homothétie et Enveloppe convexe [1].

Pour la rotation des points de contrôle, il n'y a évidemment pas de changement. En effet,
lors de la construction pyramidale, la rotation du polygone de contrôle n'a pas d'influence sur la
forme de la courbe. Les rapports entre P '00 , P '10 , P '10 et P00 , P10 , P01 sont identiques.

10
Chapitre I Modélisation mathématique

Ces propriétés, qui sont plus ou moins évidentes, sont néanmoins primordiales. En effet,
lors d'une utilisation pratique comme dans une logiciel de CAO, il est indispensable de pouvoir
translater, agrandir, . . . une pièce sans que sa forme varie.

I.2.5.5 L’enveloppe convexe

L'enveloppe convexe d'une courbe de Bézier est le polygone passant par les points de
contrôle d'une courbe de Bézier de sorte que le polygone soit le plus grand possible.

C’est une conclusion directe de la positivité et de la partition de l’unité des polynômes de


Bernstein.

Nous pouvons le voir avec le schéma pyramidal de De Casteljau. Chaque point


intermédiaire Pi r dans l’algorithme de De Casteljau est une combinaison barycentrique convexe

des points précédents Pjr −1 . En effet, les barycentres se trouvent toujours à l'intérieur du polygone

de contrôle. Il suffit de regarder la figure I.5(b) pour s'en convaincre.

I.2.5.6 Contrôle local (pseudo-local)

i
Le polynôme de Bernstein n’a qu’un maximum en t = . Ceci a applications en dessin : si
n
nous déplaçons uniquement un des sommets du polygone de contrôle, par exemple P i , alors la
courbe est principalement affectée par ce changement dans la région auteur des points où le
i
paramètre prend la valeur t = . Ceci rend l’effet du changement raisonnablement prévisible,
n
bien que le changement affecte la courbe globalement [6].

I.2.5.7 Moyenne de courbe de Bézier

Il est possible de faire la moyenne de deux courbes de Bézier. Cette transformation est
aussi appelée l'invariance par combinaison barycentrique.

Les points de contrôle sont les suivants : a0 , a1 ,..., an pour la première courbe et d0 , d1 ,..., dn pour
la deuxième.

Pour construire la courbe moyenne M (t ) , nous prendrons :

n n n
M (t ) = ∑ (α .ai + β .d i ).Bin (t ) = α .∑ Bin (t ).ai + β .∑ Bin (t ).d i (I-13)
i =0 i=0 i =0

11
Chapitre I Modélisation mathématique

Où α + β = 1 . Avec cette condition, lorsque α = 1 la courbe moyenne est la courbe avec les ai

et lorsque β = 1 c’est la courbe avec les di . Il est donc possible de faire la moyenne
moyen pondérée de
deux courbes de Bézier.

La moyenne des points de contrôle de deux courbes donne la même courbe que la
moyenne des points composant ces deux courbes [1].

Dans le cadre d'une utilisation pratique, il peut s'avérer utile de faire la moyenne de deux
courbes notamment si nous voulons fusionner deux courbes en une [1].

I.2.5.8 Approximation de Weierstrass

Nous choisissons une courbe C qui est définie par un paramètre de 0 à 1 (la courbe doit
être continue).

Nous prenons des points sur la courbe C comme points de contrôle d'une courbe de Bézier.
n
Si : Cn (t ) = ∑ Bin (t ).C (i / n) (I-14)
i =0

Le théorème d'approximation de Weierstrass établit que : lim C n (t ) = C (t )


n →∞

En d'autres termes, plus nous prenons de points de contrôle sur une courbe donnée C (t )
plus la courbe de Bézier s'approche de C (t ) [1].

L'utilité de ce théorème est toutefois relative : en effet, il faudrait choisir


choi des milliers de
points de contrôle pour obtenir une approximation correcte de la courbe C [1].

I.2.5.9 Augmentation du degré

L'augmentation du degré permet de rajouter des points de contrôle (donc d'augmenter le


degré) sans toucher à la forme de la courbe. La figure I.6 illustre une situation.

Figure I.6 : Augmentation du degré de n =3 à n =4 [1].

12
Chapitre I Modélisation mathématique

Généralement, les points Q k sont définis de la manière suivante :

 n − k 
Pk Qk +1 = .P P (I-15)
n + 1 k k +1

I.2.6 L'algorithme de De Casteljau

L’algorithme de De Casteljau est un algorithme récursif trouvé par Paul de Casteljau en


1959 chez Citroën pour approximer efficacement les polynômes écrit dans la base de
Bernstein [5].

Cet algorithme de calcul d’un point peut être utilisé pour dessiner des courbes et des
surfaces de Bézier. L’idée principale dans ce cas repose sur le fait qu’une restriction d’une
courbe de Bézier est aussi une courbe de Bézier.

Nous présentons ici l’algorithme de De Casteljau qui permet de calculer un point dans une
courbe de Bézier. En considérant une courbe de Bézier, de degré n − 1 , définie par les points de
contrôles {Pi }i =0,...,n−1 , où les Pi sont des points de ℝ 3 , nous souhaitons calculer le point de

paramètre t ∈ [ 0,1] . Notons par Pi k le  è nouveau point de contrôle lors de l’étape k d’insertion

de nœud. L’algorithme de De Casteljau s’écrit [6] :

 Pi 0 = Pi i = 0,..., n − 1
 k k −1 k −1
(I-16)
 Pi = (1 − t ).Pi + t.Pi +1 k = 1,..., n − 1; i = 0,..., n − 1 − k

A l’étape k = n − 1 on obtient un point, Pi n −1 qui est un point C (t ) de la courbe de Bézier.

La figure I.7 illustre d’un exemple de calcul un point C (t ) d’une courbe de Bézier possédant 4
points de contrôle par l’algorithme de De Casteljau. De la figure I.7.a, nous obtenons deux
polygones de contrôle de deux courbes de Bézier {P , P , P , P } et {P , P , P , P } par
0
0
1
0
2
0
3
0
3
0
2
1
1
2
0
3 la

subdivision du polygone de contrôle. En répétant cette subdivision sur chacun des polygones,
nous aurons une séquence de polygones convergeant vers la courbe de Bézier.

L’algorithme de De Casteljau ne donne pas d’information sur la tangente. On pourrait


prendre un paramètre quelconque et l’algorithme fonctionnerait encore, mais le paramètre
t = 1/ 2 est celui qui converge en moyenne le plus rapidement [5].

Cet algorithme est coûteux mais stable, la complexité donne lieu à O(n 2) opérations ( n
étant le degré) pour chaque valeur de paramètre t . Quand le nombre de points de contrôle
augmente, le polygone de contrôle tend vers la courbe de Bézier [5].

13
Chapitre I Modélisation mathématique

Figure I.7 : Calcul d’un point C (t ) d’une courbe de Bézier (a) et le schéma de l’algorithme de De
Casteljau (b) [5].
 Programmation

Nous avons construit un programme MATLAB sous forme d’une fonction nommée
« bezier_curve.m » exploite l’algorithme de De Casteljau sous forme d’une fonction
« De_Casteljau ». L’organigramme ci-dessous explique cette action :

Début

>>[a,b]=Bezier_curve(x,y)

Bezier_curve.m

Affectation de (x,y,t)

De_Casteljau.m
Plot(a,b) Calculer barycentrique de
(a(t), b(t))

Fig.Courbe de degré 

Fin

Figure I.8 : Organigramme explique le dessin en 2D d’une courbe de Bézier par algorithme de De
Casteljau.
Exemple de dessin pour {( x, y )} = {(0, 0), (0, 7), (4,10), (7,10), (8, 6), (2, 3), (7, 0)} :

14
Chapitre I Modélisation mathématique

10

0
0 1 2 3 4 5 6 7 8

Figure I.9 : Courbe de Bézier de degré 6.

I.2.7 Dérivée d'une courbe de Bézier

I.2.7.1 Expression par polynôme de Bernstein

A partir de la dérivée d'un polynôme de Bernstein, nous pouvons obtenir celle de la courbe
de Bézier :

n −1
d
C (t ) = n.∑ Bin −i .( Pi 0+1 − Pi 0 ) (I-17)
dt i =0

I.2.7.2 Calcul de la dérivée par l’algorithme de De Casteljau

Reprenons, en tenant compte du fait que B−1,n − 2 = Bn −1,n − 2 = 0 , l’expression de la dérivée de

la courbe de Bézier. Donc, on peut écrire :

n −1 n−2
d
C (t ) = (n − 1).∑ Pi .Bn−1,n− 2 (t ) − (n − 1).∑ Pi .Bi ,n− 2 (t )
dt i =0 i =0
n−2 n−2
= (n − 1).∑ Pi +1.Bi ,n− 2 (t ) + (n − 1).∑ Pi .Bi ,n−2 (t )
i =0 i =0

n −2
d
Finalement : C (t ) = (n − 1).∑ ( Pi +1 − Pi ).Bi ,n − 2 (t ) (I-18)
dt i =0

n −2
d
Posons : Pi ' = (n − 1).( Pi +1 − Pi ) pour i = 0,..., n − 2 . On a: C (t ) = ∑ Pi '.Bi ,n −2 (t ) (I-19)
dt i=0

Nous voyons donc que la dérivée d'une courbe de Bézier de degré (n − 1) et de points de

contrôle Pi est une autre courbe de Bézier de degré (n − 2) et de points de contrôle Pi ' ; c’est-à-
dire une courbe de Bézier est infiniment dérivable. On peut donc utiliser tous les algorithmes de
calcul de points de courbes de Bézier pour calculer la dérivée de la courbe de Bézier. En

15
Chapitre I Modélisation mathématique

particulier, la dérivée d’une courbe de Bézier peut être calculée par l’algorithme de
De Casteljau [3].

I.2.8 Sensibilité d'une courbe de Bézier

Une petite variation des points de contrôle d'une courbe de Bézier ne peut pas influencer
fortement la courbe. En revanche, il y plusieurs moyens de définir presque la même courbe.
Autrement dit, si nous réalisons une grande variation des points de contrôle, il est possible que la
courbe de Bézier ne varie que très faiblement [1].

I.2.9 Avantages et inconvénients des courbes de Bézier

Les propriétés de courbes de Bézier que nous avons vues sont presque toutes des avantages
pour une utilisation pratique. Néanmoins, les courbes de Bézier ont quelques inconvénients :
• Courbe ne passant pas par les points de contrôle, il peut être difficile de contrôler la courbe
bien que, comme nous l'avons vu, l'utilisation de points de contrôle facilite souvent la
conception. Ainsi, les courbes de Bézier ne seraient pas très efficaces pour tracer une courbe
de tendance sur des mesures. Pour ce type de problèmes, nous nous tournons plus vers
l'interpolation cubique et par splines cubiques.
• Manque de contrôle local ; la modification d'un point fait bouger toute la courbe.
• Pour une forme complexe, nous devons utiliser beaucoup de points de contrôle donc le degré
de la courbe est élevé. Celle-ci devient lourde est difficile à manipuler. C'est pour cette raison
que nous préférons raccorder plusieurs courbes de Bézier de degré moindre.

I.2.10 Courbes de Bézier rationnelles

Soit n + 1 points de contrôle {Pi }i =0,...,n de l’espace affine E d , d = 2;3 .

Soit n + 1 scalaires non nuls {wi }i =0,...,n , appelés poids, vérifiant :

n
∀t ∈ 0,1 , ∑ wi .Bi ,n (t ) ≠ 0
i =0

Une courbe de Bézier rationnelle de degré n [4], dans l’espace affine ε est l’ensemble des
points C (t ) , ∀t ∈ [ 0,1] , vérifiant :

∑B i ,n (t ).wi .Pi n
C (t ) = i =0
n
= ∑ Gi ,n (t ).Pi (I-20)
∑B
j =0
j ,n (t ).w j i =0

16
Chapitre I Modélisation mathématique

Où les Gi ,n (t ) sont les fonctions de Bernstein rationnelles,

I.2.11 Raccords de courbes de Bézier

I.2.11.1 Principe

Comme nous l'avons vu, il est intéressant de raccorder plusieurs courbes de degré peu
élevé pour former une courbe complexe. Généralement, nous utilisons des courbes de degré 3 car
elles sont simples et permettent d'avoir des points d'inflexion. Les courbes de degré 2 sont aussi
utilisées.

Il est évidemment nécessaire d'assurer la continuité entre les courbes. La continuité la plus
simple et celle de classe C 0 . Il suffit que la courbe soit continue. Etant donné qu'une courbe de
Bézier passe par les points de contrôle extrêmes, il suffit de dire que le dernier point de contrôle
d'une courbe sera le premier de la courbe suivante. Nous noterons la première courbe C (t ) et la
suivante C '(t ) . Il apparait que de tels raccords ne sont pas du tout satisfaisants car, il y a des
cassures (la dérivée n'est pas continue) [1].

Pour remédier ce problème on utilise la continuité géométrique G1 lorsque nous


n'observons aucun changement de direction sur la courbe. Néanmoins la vitesse peut changer au
raccord. La figure I.10 montre le raccord entre deux courbes de degré 3 [1].

Dans le cadre d'un raccordement G 0 les vecteurs dérivées ont la même direction mais pas
forcément la même norme. Il peut être gênant d'avoir de tels raccords pour certaines utilisations
(comme en robotique) où la vitesse doit être constante [1].

La continuité de classe C 1 réponde ce besoin lorsque la direction et la norme du vecteur

dérivée sont continues. Les raccords de type C 1 ont d'autres avantages que de garantir la
continuité du vecteur vitesse. Comme nous le voyons à la figure I.10, le point P '1 est placé

automatiquement à l'aide de P2 et P3 . Avec des raccords G1 ce point aurait peut être placé

n'importe où sur la droite reliant P2 à P3 . Cette liberté rend les courbes plus difficiles à construire
car nous ne savons pas où placer ce point sur la droite [1].

17
Chapitre I Modélisation mathématique

Figure I.10
I. : Schéma du raccord de 2 courbes de Bézier [1].
 Programmation

Nous avons élaboré l’organigramme, ci-dessous


dessous qui explique un programme MATLAB
pour simplifier la procédure de raccordement assurant la continuité de class C 0 . Ce programme
nommé « raccordCC0.m » utilise les deux fonctions auxiliaires « cbezier.m » et «casteljau.m »
pour évaluer les points de deux courbes à raccorder en coïncidence. Donc la condition, ici, est
que le point final de la première courbe est le début de la deuxième courbe.
courbe

Début

raccordCC0
raccordCC0.m

Input :
cbezier.m
po in
intt de
d e po lyg o ne 1 {X P 1 ,Y P 1}
p olygo
calcul des points
po in
intt de
d e po lyg o ne 2 {X P 2 ,Y P 2 }
p olygo
des courbes 1 et 2

p oints ddee la co urbe 1 ( x , y )


p oints ddee la co urbe 2 ( x , y )
casteljau.m
plot( x, y , XP,YP) oin t ( x , y )
évlu atio n du p oint
de la courbe 1, et 2 respectivement à uunn param etre t

Fig. Deux courbes raccordées


en coïncidence.
Figure I.11 : Organigramme
simplifie de la procédure du
d
Fin
raccordement de class C 0 .

18
Chapitre I Modélisation mathématique

Comme un exemple, on prend le polygone de contrôle 1 définit par les points :


{(0, 0), (1, 2.5), (2,3), (3,1.5), (3.5, 0)} et le polygone 2 définit par {(3.5, 0), (3, −2), (5, −4), (6, 0)} et
nous obtenons le dessin suivant :
Raccord C0 de deux courbes

P2
3
P1

2
P3

0 P'0 P4 P'3
P0

-1

-2
P'1

-3

-4
P'2

0 1 2 3 4 5 6

Figure I.12 : Raccord C 0 de deux courbes.

I.2.11.2 Avantages et inconvénients


• Le principal avantage des courbes de Bézier composites est que le nombre de points de
contrôle peut être très grand sans que la courbe devienne impossible à manipuler.
• Il est aussi intéressant d'avoir des points d'interpolation au milieu de la courbe et pas
seulement aux extrémités. Il est néanmoins difficile d'exploiter cette propriété car elle ne
concerne que certains points.
• Un autre avantage par rapport à une courbe de Bézier unique est la robustesse. En effet, la
modification d'un point ne fait pas bouger toute la courbe.
• Le principal inconvénient de ce type de courbe est que le modèle n'est pas optimal. Certains
points de contrôle sont inutiles.

Les B-Splines que nous allons étudier maintenant permettent de résoudre ces problèmes.

I.3 Les B-Splines

I.3.1 Motivations

Il s'agit de fabriquer une courbe qui présente tous les avantages des courbes de Bézier mais
sans ses inconvénients. Ainsi, la courbe devra approximer les points de contrôle, être simple à
manipuler, présenter les mêmes propriétés que les courbes de Bézier, etc.

Le degré de la courbe ne devra pas être proportionnel au nombre de points de contrôle mais
fixe. La modification d'un point ne doit pas affecter toute la courbe.

19
Chapitre I Modélisation mathématique

Les B-Splines ont été développée chez Boeing dans les années 70 et 80 [1]. Les B-Splines
existait déjà avant (en 1946) [4], mais n'était pas utilisées et le concept pas finalisé.

I.3.2 Fonctions de base de B-spline :

I.3.2.1 Idée

Comme les courbes de Bézier qui s’expriment comme une combinaison linéaire des
polynômes de Bernstein, lesquels forment une base de l’espace vectoriel des polynômes d’un
certain degré, les courbe B-splines se définissent à partir d’une base de fonctions. La différence
essentielle est que les B-splines ne sont pas polynomiales, mais polynomiales par morceaux.
Cela permet d’approximer un nombre quelconque de points de contrôle par des courbes de degré
fixé, par exemple cubique par morceaux [3].

Donc l'idée principale des B-Splines est de remplacer les polynômes de Bernstein par des
fonctions. Ensuite, nous sommerons ces fonctions avec les points de contrôles pour obtenir la
courbe. Une B-Spline ne dépend pas uniquement des points de contrôle mais aussi d'un vecteur
nœud [1]. Ces nœuds associées dans ce vecteur sont les dispensables de raccorder entre les
segments de la courbe et jouent un rôle fondamental dans l'arrangement de ce genre de courbe.

I.3.2.2 Bases B-Splines N i ,k (t )

Les fonctions de base B-splines ont notés N i ,k (t ) où k est l'ordre de la B-spline et


i ∈{0,..., m} . Ces fonctions sont définies de manière récursive (figure I.13) comme des
polynômes par morceaux :

1 si t i ≤ t ≤ t i +1
Où : Ni ,0 (t ) = 1[ti ,ti+1[ ⇒ N i ,0(t ) =  (I-21)
0 ailleurs

t − ti t −t
Avec : N i , k (t ) = .N i ,k −1 (t ) + i +1+ k .N i +1,k −1 (t ) (I-22)
ti + k − ti ti +1+ k − ti +1

Figure I.13 : Schéma récursif pour les N i , k [1].

20
Chapitre I Modélisation mathématique

t − ti
Notation. Soit j = 1,..., m + 1 − i . Si t i < t i +1 , on note ω i , j (t ) =
t i+ j − t i
t − ti
Convention : si t i = t i +1 alors le coefficient sera posé comme étant nul et chaque fois que
t i+ k − t i
 ... 
nous aurons   , nous poserons ce quotient égal à 0.
0

On peut donc définir la fonction N i ,k comme suivant :

Ni,0 (t ) = 1 pour t ∈[ti , ti +1[ , = 0 sinon,

et pour k ≥ 1 , Ni ,k (t ) = ωi ,k (t ).Ni ,k −1 (t ) + (1 − ωi +1,k (t )).Ni +1,k −1 (t )

B-spline N i ,k (t ) ont été définis pour que les segments de courbes


Les polynômes de base B

successifs se raccordent les uns aux autres. Il existe (k + 1) polynômes de base pour une
représentation de degré . Pour le calcul des valeurs de la fonction de base, on peut utiliser des
oor ou de Cox
algorithmes de Boor Cox-de Boor [5].

I.3.2.3 Etude des fonctions de base

Nous prenons les cas suivants :

I. : Fonctions de base B-spline avec k = 3 [1].


Figure I.14

Figure I.15 : Multiplicité des nœuds [1].


21
Chapitre I Modélisation mathématique

I.3.2.3.1 Propriétés principales de fonctions de base

A partir des figures précédentes, nous pouvons voir les propriétés générales des fonctions
de base B-splines :
• Les courbes (figure I.14(a)) partants de ti arrivent en ti + k +1 , par contre les courbes (figure

I.14(b)) suivent la non uniformatisation de vecteur nœud.


• La fonction N i ,k est sur chaque intervalle [ti , ti +1[ un polynôme de degré ≤ k ;

• Support :
• La fonction N i ,k s’annule en dehors de l’intervalle [t i, t i +1[ ;

• La fonction N i ,k s’annule aussi en ti (c.-à-d. cas des nœuds simple) sauf si

ti = ti +1 = ... = ti + k < ti +k +1 auquel cas Ni,k (ti ) = 1 (c.-à-d. cas de multiplicité des
nœuds (figure I.15(b));
• 0 < Ni ,k (t ) ≤ 1 pour t ∈  ti , ti +1  ;

• Sur l’intervalle ]ti , ti +1 [ , la fonction N i ,k ne prend la valeur 1 que si ti +1 = ... = ti + k

et en ce point seulement (fig. 15(a)) ;


m − k −1
• Partition de l’unité : sur l’intervalle [tk , tm − k [ , ∑
i =0
Ni ,k (t ) = 1 ;

• Différentiabilité :
• Pour tout k ≥ 0 , la fonction N i ,k est dérivable à droite, de dérivée [7]:

d  1 1 
Ni ,k (t ) = k .  Ni ,k −1 (t ) − Ni +1,k −1 (t )  (I-23)
dt  ti + k − ti ti + k +1 − ti +1 
• au voisinage d’un nœud de multiplicité r , la fonction N i ,k est seulement de classe

C k −r [7];
I.3.3 Courbes B-Splines

Le mot anglais « spline » signifie « latte », c’est-à-dire une pièce allongée, généralement
en bois, suffisamment étroite et mince pour pouvoir prendre une forme donnée.

Une B-spline est une figure linéaire constituée d’une chaîne continue de courbes de Bézier
de degré 3 en général. Chaque courbe est tangente aux autres en points du début et de fin. Une B-
spline est construite à partir d’une seule ligne appelée le descripteur [1].

22
Chapitre I Modélisation mathématique

Une courbe B-spline de degré k avec n points de contrôle consiste à (k − r ) segments

d’une courbe de Bézier. Touts ces segments ont une continuité de classe C 2 dans le raccord des
points.

Par exemple, une courbe B-spline cubique (degré 3) avec 10 points de contrôle a 7
segments. Sous sa forme déroulée, les B-splines n'interpolent pas de ses points de contrôle, alors
que la courbe de Bézier maintient automatiquement ses points des extrémités. Cependant, des

B-splines peuvent être forcées d'interpoler n'importe lequel de ses points de contrôle de n
sans la répéter, qui n'est pas possible avec la courbe de Bézier.

Après l’explication précédente de la fonction de base B-spline, nous pouvons prendre la


définition de une B-spline comme ci-dessous :

Définition :

La courbe B-spline de degré k associée au vecteur de nœud (ti )i =0,...,m et au polygone de

contrôle définit par les points {Pi }i =0,...,n a pour représentation paramétrique :
n
X k (t ) = ∑ N i ,k (t ).Pi (I-24)
i=0

Avec : m = n + k + 1 ;

I.3.3.1 Propriétés des courbes B-splines

Théorème :

La k ième B-spline t ֏ X k (t ) a les propriétés suivant [7] :

• Les composantes de X k (t ) sont sur chaque intervalle [ti , ti +1[ des polynômes de

degré k ,
• En un nœud de multiplicité r , la courbe est de classe C k −r [3],
• si t ∈ [ti , ti +1[ , X k (t ) ne dépend que des points de contrôle Pi −k ,..., Pi et se trouve

dans l’enveloppe convexe de ces points ;


• si t i est un nœud simple et k ≥ 1 , X k (ti ) ne dépend que des points de contrôle

P i −k ,..., P i −1 et se trouve dans l’enveloppe convexe de ces points ;


• si ti = ... = ti + k < ti + k +1 est un nœud de multiplicité k + 1 , alors X k (ti ) = Pi (voir

k
figure I.16) et X 'k (ti ) = ( Pi +1 − Pi ) ;
ti + k +1 − ti

23
Chapitre I Modélisation mathématique

• la construction de la courbe X k à partir des points de contrôle Pi est invariante par


application affine.

I.3.3.1.1 Points et tangentes remarquables

On dit qu’une courbe B-spline est vissée aux extrémités (clamped) si elle est de degré k et
si les nœuds extrêmes t0 et tm sont de multiplicité k + 1 , i.e. t0 = t1 = ... = tk = 0 < tk +1 et

tm−k = ... = tm . Dans ce cas, le nombre de points de contrôle effectivement utiles est m − k − 1 .
(Ex. : figure I.16(a)).

Il résulte du théorème précédent qu’une courbe vissée aux extrémités est tangente à son
polygone de contrôle aux extrémités [7].

Figure I.16 : B-splines avec multiplicité des nœuds ( k = 3 ) [1].

Proposition 1 :

Soit X k une courbe B-spline de degré k vissée aux extrémités. Alors X k (t0 ) = P0 et

X k (tm ) = Pm−k −1 . Si de plus P1 ≠ P0 (respectivement Pm−k −2 ≠ Pm− k −1 ), alors la courbe est tangente

en P0 au segment [ P0 P1 ] (respectivement [ Pm − k − 2 Pm − k −1 ] ) [7].

I.3.3.1.2 Périodicité

Proposition 2 : Si on se donne un vecteur de nœuds et un polygone de contrôle périodiques, i.e.


tels qu’il existe I ∈ℕ et T ∈ ℝ tels que ti + I = ti + T et Pi + I = Pi , alors les courbes B-splines

correspondantes sont périodiques, i.e. pour tout entier k et tout t ∈ℝ , X k (t + T) = X k (t ) .

I.3.3.1.3 Symétries

Toute symétrie du polygone de contrôle compatible avec une symétrie du vecteur de


nœuds (toujours satisfaite pour les vecteurs de nœuds utilisés par Design Mentor par exemple) se
traduit par une symétrie de la courbe [7].
24
Chapitre I Modélisation mathématique

Proposition 3 : Soit σ une symétrie du polygone de contrôle qui préserve l’ordre des sommets,
i.e. une transformation affine telle que σ ( Pi ) = Pi + I . Si le vecteur de nœuds est lui aussi

périodique, i.e. ti +I = ti + T , alors la courbe B-spline de degré k associée l’est aussi,

σ ( X k (t ) ) = X k (t + T) .

Proposition 4 : Soit σ une symétrie du polygone de contrôle qui renverse l’ordre des sommets,
i.e. une transformation affine telle que σ ( Pi ) = PI−i . Si le vecteur de nœuds est lui aussi

périodique, i.e. tm−i = 2a − ti pour i = 0,..., m , où m = I + k + 1 , alors la courbe B-spline de degré

k associée l’est aussi, σ ( X k (t ) ) = X k (2a − t ) pour tout t ∈[tk , tI [ .

I.3.3.1.4 Interpolation des points de contrôle

Il est possible d’interpoler une courbe B-spline de degré k si on fait ti +1 = ... = ti + k (le

nœud  de multiplicité k ) (la figure I.16(b)) illustre la situation) [1]. Il est aussi possible de faire
passer la courbe par un point P i en répétant ce point k fois (comme la montre la figure I.17
(pour k = 3 ).

Figure I.17 : Interpolation des points de contrôle par répétition des points [1].

I.3.3.1.5 Correspondance Bézier - B-Splines

Lorsque le vecteur de nœuds a la forme spéciale ( 0,...,0,1,1,...,1)


  , on parle que la courbe
k+1 k+1

de Bézier est un cas spécial de B-splines et les N i ,k sont les Bi ,k (figure I.18). Cette action permet

de convertir d’une B-spline à une courbe de Bézier [1].

25
Chapitre I Modélisation mathématique

Figure I.18 : Correspondance Bézier & B-spline


spline [1].

I.3.3.1.6 Contrôle local

Il est possible de contrôler localement une B


B-Spline.
Spline. La modification d'un point de contrôle
ou d'un nœud ne modifie pas toute la courbe.

I.3.3.1.7 Dérivée d’une B-spline


B (par l’algorithme de De Casteljau)

Proposition 5 : On fixe un vecteur de nœuds T et un polygone de contrôle P . Les dérivées


successives de la courbe B--spline X k de degré k correspondante
te s’obtiennent comme suit.

Soit t ∈ [t i, t i +1[ . On pose Q 0j = P j pour i − k ≤ j ≤ i . Puis, pour r = 0,..., k − 1 , on pose :

r +1 1
Q j = (k − r ) (Q j − Q j −1)
r r
(I-25)
t j + k −r − t j

Pour i − k + r + 1 ≤ j ≤ i (la convention Q rj+1 = 0 si le dénominateur est nul est en vigueur). Alors

la dérivée r ième de X k au nœud t vaut

r
X (j r ) (t ) = ∑ Ni, k (t ).Q j (I-26)
j

Donc, on peut employer l’algorithme D Casteljau pour calculer X (jr )(t ) [7].
algorithme de De

I.3.4 Algorithme de Cox-De


Cox Boor

Cet algorithme permet calculer de plus efficient un point C (t ) en fonction de la valeur

correspondante du paramètre. Etant donné un ensemble de n points de contrôle {P i}i =0,...,n −1 d’une

spline de degré  possédant un vecteur de nœuds T = (t0 ,..., tn + k ) . Notons par Pi r le


courbe B-spline

nouveau point de contrôle lors de l’étape r d’insertion de nœud. Le principe de l’algorithme de

26
Chapitre I Modélisation mathématique

Cox -de Boor est l’évaluation un point de la courbe B-spline pour une valeur de paramètre
t ∈ [t h, t h +1[ avec t h < t h+1 est le suivant [5] :

 Pi 0 = Pi i = h − k ,..., h
 r (I-27)
 Pi = (1 − α i ).Pi +1 + α i .Pi
r −1 r −1
r r
r = 1,..., k ; i = 0,1,..., k − r

t − th − r + i
avec α ir =
th + r − th − r + i

Alors, le point C (t ) = P0r .

Figure I.19 : Calcul d’un point C (t ) d’une courbe B-spline de degré 2 (a) et le schéma de
l’algorithme de Cox-De Boor (b) [5].
 Programmation

Nous avons construit un programme MATLAB qui évalue un point C (t ) d’une courbe B-
spline pour chaque abscisse t d’un vecteur nœud. A la fin de ce programme on peut observer la
représentation graphique de la courbe B-spline.

27
Chapitre I Modélisation mathématique

Début

b_spline.m

Input : T ; x ; y

pour i = 0, ..., n − p − 1
B ( i + 1, :) = b ( t , T , i , p ); b.m
fin pour calcul d 'élém en ts de
la m atrice B
Output : plot(x*B,y*B,x,y)

Fig. Courbe B-spline de degré p

Fin

Figure I.20 : Organigramme de dessin d’une B-spline de degré p.

I.3.5 Courbes B-spline rationnelles

Soit (t j ) j = 0,...,m un vecteur nodal. Soit n + 1 scalaires {wi }i =0,...,n , appelés poids, associés aux

n + 1 points de contrôle {Pi }i =0,...,n où w ≥ 0 et vérifiant :


i

∀t ∈ [t0 , tm ] , ∑ wi .Ni ,k (t ) ≠ 0
n

i=0

Une courbe B-spline rationnelle de degré  dans un espace affine E {d = 2,3} est l’ensemble des
d

points X k (t ) , vérifiant :

∑N i,k (t ).wi .Pi n


X k (t ) = i =0
n
= ∑ Ri ,k (t ).Pi (I-28)
∑N
j =0
j ,k (t ).w j i =0

Avec : m = n + k + 1 ;

et les Ri , k (t ) sont les fonctions de base des courbes B-spline rationnelles.

I.3.6 Avantages et inconvénients

Les principaux avantages sont :

28
Chapitre I Modélisation mathématique

• Les B-Splines résolvent les problèmes que nous avons constatés pour les courbes de
Bézier,
• il est possible de contrôler les B-Splines
B Splines localement et l'ajout de points n'augmente pas le
degré de la courbe,
• il est possible d'interpoler les points de contrôle,

Le principal
al inconvénient des B-Splines
B est leur complexité due à :
• Difficulté de calculer les fonctions de base.
• Les points de contrôle ne sont plus les seuls paramètres des courbes, il y a aussi le
vecteur nœud.
• Difficulté de gérer les points et les nœuds en même temps. C'est pourquoi nous ne faisons
que varier les points de contrôle, les nœuds sont généralement ouverts aux extrémités et
uniforme au milieu [1].

I.4 Surfaces, Carreaux de Bézier

La surface de Bézier est simplement une prolongation de la courbe de Bézier dans deux
directions paramétriques, un produit tensoriel de deux courbes. C’est-à-dire
C’est dire une courbe de Bézier
déportée le long d’une autre courbe de Bézier génère ce qu’on appelle un carreau de Bézier.
L’ensemble des brisés définissant le carreau constitue le descripteur du carreau. u et t sont les
variables des 3 fonctions, x(u, t ), y (u, t ) , et z (u, t ) . x, y et z sont les coordonnées du point sur le
carreau. Si u est constant et t varier de 0 à 1, le point se trouve sur une courbe
isoparamétrique [1].

Figure I.21 : Carreau de Bézier.

Tout point d’un carreau de Bézier est situé à l’intersection de deux isoparamétriques
constantes u et t .

29
Chapitre I Modélisation mathématique

Comme nous avons vue que les courbes de Bézier sont des courbes d’approximation, les
carreaux de Bézier sont aussi des surfaces d'approximation définies à l'aide de courbes de Bézier.

I.4.1 Interpolation bilinéaire et algorithme de De Casteljau

Lors de l’étude de l’algorithme de De Casteljau pour les courbes, nous avons considéré,
étant donné deux points de contrôle Pi et Pi +1 , le point Pi1 = (1 − t ).Pi + t.Pi +1 .Ceci revient à dire

que nous avons considéré la courbe la plus simple passant par Pi et Pi +1 : le segment de droite.

Dans le cas des surfaces, les points de contrôle forment un réseau Pi , j , pour Pi et

i = 0,..., m − 1 , et j = 0,..., n − 1 . Nous allons cette fois considérer la surface la plus simple qui
passe par Pi , j , Pi +1, j , Pi , j +1 et Pi +1, j +1 : la surface réglée. Pour cela, on considère les points

intermédiaires [3] :

 Pj(0,1)
,i = (1 − t ).Pi , j + t.Pi , j +1
 (1,0) (I-29)
 Pj ,i = (1 − t ).Pi +1, j + t.Pi +1, j +1

Puis on pose :

 Pi , j Pi , j +1  1 − t 
j (u , t ) = (1 − u ).Pi , j
Pi ,(1,1) (0,1)
+ u.Pi ,(1,0) = [1 − u u ]. 
Pi +1, j +1   t 
j . (I-30)
 Pi +1, j

Figure I.22 : Interpolation bilinéaire et surfaces de Bézier [3].

Pour u = 0 et t = 0 , on a Pi ,(1,1)
j = Pi , j . Pour u = 0 et t = 1 , on a Pi (1,1)
,j = Pi , j +1 . Pour u = 1

et t = 0 , on obtient P i(1,1)
, j = P i +1, j . Enfin, pour u = 1 et t = 1 , on a Pi , j
(1,1)
= Pi +1, j +1 . Par conséquent,

lorsque u et t varient entre 0 et 1, Pi ,(1,1)


j (u , t ) décrit une surface interpolant les 4 coins

Pi , j , Pi +1, j , Pi , j +1 et Pi +1, j +1 . C’est un analogue 2D de l’algorithme de De Casteljau pour les courbes


(voir fig.16 un schéma de la récurrence).
30
Chapitre I Modélisation mathématique

à partir du tableau de points de contrôle Pi , j , pour i = 0,..., m − 1 et j = 0,..., n − 1 , on définit

j (u , t ) , pour i = 0,..., m − 2 et j = 0,..., n − 2 puis, de la même façon, un tableau


un tableau Pi ,(1,1)

P i , j (u , t ) , pour i = 0,..., m − 3 et j = 0,..., n − 3 . On distingue alors trois cas :


( 2,2)

- 1 cas : si n = m (c’est le cas de quadrillages carrés). On aboutit à un unique point


( m −1, n −1)
Q (u , t ) = P0,0 .

- 2è cas : si n > m . Pour r = m,..., n − 1 et j = 0,..., n − r − 1 , on pose

P0,( rj,r ) (u , t ) = (1 − t ).P0,( rj−1,r −1) (u , t ) + t.P0,( rj−+1,1 r −1) (u , t ) , c’est-à-dd que l’on termine la
( n −1, n −1)
séquence par l’algorithme de De Casteljau 1D, puis on pose : Q (u , t ) = P0,0 .

- 3è cas : si n < m . Pour r = n,..., m − 1 et pour i = 0,..., m − r − 1 , on pose

Pi ,0( r ,r ) (u , t ) = (1 − u ).Pi ,0( r −1,r −1) (u , t ) + u.Pi (+r1,0


−1, r −1) ( m −1, m −1)
(u , t ) , puis on pose : Q (u , t ) = P0,0 .

I. : Carreau de Bézier bilinéaire avec m = n = 3 [1].


Figure I.23

Figure I.24 : Surface de Bézier complexe [1].

La figure I.24 est une surface m = n = 3 avec des points choisis de manière aléatoire. Une
surface peut donc avoir des points de rebroussement, se croiser, . . . Avec peu de points de
contrôle, il est possible
le de réaliser des surfaces complexes.

31
Chapitre I Modélisation mathématique

I.4.2 Produit tensoriel (Réseaux de courbes de Bézier)

Soit des points de contrôle Pi , j , pour i = 0,...,3 et j = 0,...,3 . Soit Q 0 la courbe de Bézier

définie par les points de contrôle P0,0 , P0,1 , P0,2 et P 0,3 (Figure I.25). D’après l’expression des

courbes de Bézier par les polynômes de Bernstein, nous avons [3] :


3
Q 0 = ∑ P0, j .B j ,3 (t )
j =0

Figure I.25 : Décomposition d’une surface de Bézier en courbes [3].

De même, soit Qi la courbe de Bézier définit par les points de contrôle Pi ,0 , Pi ,1 , Pi ,2 et Pi ,3 .

D’après l’expression des courbes de Bézier par les polynômes de Bernstein, on a :


3

Q i = ∑ Pi , j .B j ,3 (t )
j =0

Soit Q(u, t ) = P(u ) , où P est la courbe de Bézier de points de contrôle Q 0(t ),Q1(t ), Q 2(t ), Q 3(t ) .

D’après l’expression de P(u ) par les polynômes de Bernstein on a :


3 3 3
P (t ) = ∑ [Qi (t ) ] .Bi ,3 (u ) = ∑∑ Pi , j .Bi ,3 (u ).B j ,3 (t ) (I-31)
j =0 i = 0 j =0

C’est ainsi que s’expriment les surface de Bézier par les polynômes de Bernstein pour un
nombre quelconque m × n de points de contrôle [3]:
m −1 n −1
Q (u , t ) = ∑∑ Pi , j .Bi ,m −1 (u ).B j ,n −1 (t ) (I-32)
i =0 j =0

 Programmation

Maintenant, nous avons pris une bonne idée sur les surfaces de Bézier qui nous a guidées à
construire un programme MATLAB nommé « sur_bezier.m » pour calculer et représenter les
points d’une surface de Bézier. La procédure du fichier « sur_bezier.m » définit un ensemble de
points de contrôle et réalise la construction et la visualisation de la surface de Bézier associée.

32
Chapitre I Modélisation mathématique

Cette procédure appelle le fichier « sbezier.m » qui construit un échantillonnage de points


d’une surface de Bézier à l’aide de la procédure du fichier « coox.m », ainsi que la procédure du
fichier « ubezier.m » qui trace la surface et les points de contrôle. La procédure du fichier
« coox.m » construit un point d’une surface de Bézier selon un algorithme de De Boor-Coox.

L’organigramme, ci-dessous, explique la procédure de la construction d’une surface de


Bézier suivant l’algorithme de De Boor-Coox.

Début

sur_bezier.m
sbezier.m
Input: réseau de points de controle
C onstruction d'un échantillonage
de points d'une surface de B ézier
éch antillon age d e
par l'algorithm e de C oox.
la surface de B ézier

Output : le tracé de coox.m

la surface de Bézier C onstruction d'un point


d'une surface de B ézier selon
ubezier.m l'algorithm e de D e B oor-C oox
T racé d'u ne su rface de
B ézier et d e ses po in ts cast3d.m
de con trô le. C onstruction du point P (t) d'une
courbe de B ézier pour une valeur
Fig. Surface de Bézier blinéaire.
du param ètre t, par l'algorithm e de

D e C asteljau.
Fin

Figure I.26 : Organigramme simplificateur de processus de génération d’une surface de Bézier.

I.4.3 Surfaces de Bézier rationnelles

Une surface de Bézier rationnelle de bi-degré (m, n) 3D est définie en 4D par [7]:

Pour tous (u , t ) ∈ [ 0,1] × [ 0,1] ,

m n

∑∑ B (u ).B j ,n (t ).wi , j .Pi , j


{Q } m n  i ,m

(u , t ) = H  ∑∑ Bi ,m (u ).B j ,n (t ).Pi ,wj  =


w i = 0 j =0
Q (u , t ) = H m n
 i = 0 j =0  ∑∑ B (u ).Bs ,n (t ).wr , s
r ,m
r =0 s = 0

33
Chapitre I Modélisation mathématique

m n
= ∑ ∑ Gi ,m; j ,n (u , t ).P i , j (I-33)
i =0 j =0

où les P i , j sont les pôles (les points de contrôle) de la surface. Ce qui donne selon [7] :

Bi ,m (u ).B j ,n (t ).wi , j
Gi ,m; j , n (u, t ) = m n

∑∑ B
r = 0 s =0
r ,m (u ).Bs ,n (t ).wr , s

Les poids wi , j ≥ 0 , pour toutes les valeurs de i et j .

Les Gi ,m; j ,n (u, t ) sont les fonctions de base rationnelle Bernstein bi-variables.

I.5 Surfaces B-splines

Comme les courbes B-splines, les surfaces B-splines ont l’avantage d’un contrôle local et
d’un degré peu élevé.

{ }
j = 0,..., n −1
Soit Pi , j un réseau de point de contrôle. Soit k ≥ 1 , qui contrôlera le degré des
i = 0,..., m −1

polynômes considérés par rapport au paramètre u , et soit l ≥ 1 , qui contrôlera le degré des
polynômes en fonction du paramètre t . soit U = (u0 ,..., um + k −1 ) un vecteur nodal par rapport à u ,

et T = (t0 ,..., tn +l −1 ) un vecteur nodale par rapport à t . On définit les fonctions N i ,k et N j ,l , pour

i = 0,..., m − 1 et pour j = 0,..., n − 1 .

La surface B-spline Q d’ordre m × n de degré k − 1 par rapport à u et de degré l −1 par


rapport à t ayant T et U pour vecteur nodaux et les Pi , j pour points de contrôle est définie par :

[uk −1 , um ] × [tl −1 , tn ] → 3
 ℝ
m −1 n −1
 (I-34)
 (u , t ) ֏ Q (u , t ) = ∑∑ Pi , j .N i , k (u ).N j ,l (t )
 i =0 j =0

La surface Q s’exprime donc comme une somme des fonctions N i ,k , N j ,l pondérée par les

points de contrôle [3].

34
Chapitre I Modélisation mathématique

I.5.1 Réseau de courbes B-splines


n −1
Pour i = 0,..., m − 1 posons Q i (t ) = ∑ Pi , j .N j ,l (t ) la courbe Qi est la courbe B-spline d’ordre
j =0

l et de point de contrôle Pi , j , pour j = 0,..., n − 1 . Transformons l’expression d’un point de la

surface B-spline définie par les N i ,k :

m −1 n −1 m −1  n −1  m −1
Q (u , t ) = ∑∑ Pi , j .N i ,k (u ).N j ,l (t ) = ∑  ∑ Pi , j .N j ,l (t )  .N i , k (u ) = ∑ Q (t )  .N i ,k (u ) (I-35)
i =0  j =0
 i 
i = 0 j =0  i =0

On voit donc que le point Q(u, t ) de la surfaces de la point de paramètere  de la courbe B-


spline d’ordre k ayant pour points de contrôle les point Qi (t ) pour i = 0,..., m − 1 . La situation est
semblable au cas des surfaces de Bézier [3].

I.5.2 Surfaces B-spline rationnelles

Une surface B-spline rationnelle de bi-degré (k , l ) 3D est définie en 4D par [7]:


m n

∑∑ N (u ).N j ,l (t ).wi , j .Pi , j


{Q } m n  i ,k

(u , t ) = H ∑∑ N i ,k (u ).N j ,l (t ).Pi ,wj  =


w i = 0 j =0
Q (u , t ) = H m n
 i = 0 j =0  ∑∑ N (u ).N s ,l (t ).wr , s
r ,k
r =0 s =0

m n
= ∑∑ Ri , k ; j ,l (u , t ).Pi , j ∀(u , t ) ∈ U × T (I-36)
i =0 j = 0

Où l’application H est la projection conique de centre O d’une courbe B-spline de ℝ 4 sur


l’hyperplan W = 1et définit comme suit :
4 3
ℝ ֏ℝ

 x y z 
( x, y , z , W ) ֏ H ( x, y , z , W ) =  , , 
W W W 

Les P i , j sont les pôles de la surface. Ce qui donne [7] :

Ni , k (u ).N j ,l (t ).wi , j
Ri ,k ; j ,l (u, t ) = m n

∑∑ N
r =0 s =0
r ,k (u ).N s ,l (t ).wr , s

Les Ri , k ; j ,l (u , t ) sont les fonctions de base rationnelle B-spline bi-variables.

35
Chapitre I Modélisation mathématique

I.6 Conclusion

Nous pouvons remarquer que le travail, dans ce chapitre, est consacré à l'étude des courbes
d'approximation. Nous avons prendre une aperçu sur les courbes de Bézier, les B-Splines, les
surfaces de Bézier et enfin les surfaces B-Splines.

Les problèmes d'approximation des courbes et des surfaces présentent un vaste sujet qui
s'étend de l'ajustement de mesures à la conception d'images, de synthèse en passant par la
création de polices de caractères. Avec la révolution industrielle et à l’utilisation des MOCN
(machines-outils à commandes numériques), il devenait obligatoire d'exprimer les courbes
mathématiquement.

Nous avons choisi une approche graphique, c'est-à-dire que nous étudierons plutôt des
courbes destinées à la C.A.O (conception assistée par ordinateur) ou au design.

36
Chapitre II Algorithmique des transformations

II.

II.1 Introduction

La transformation dans le modèle de Bézier et le passage du modèle de Bézier au modèle


B-spline et inversement exigent une manipulation des algorithmes convenables capables
d’évaluer les points de la courbe paramétrique, de subdiviser la courbe à une abscisse
paramétrique donnée et de donner un nouveau polygone à la courbe sans modifier sa géométrie.

En effet, il existe deux catégories des algorithmes sont celles d’évaluation (cités au premier
chapitre) et l’autres de raffinement d’augmente le nombre de points de contrôle qui ne changent
pas réellement la géométrie de la courbe B-spline, et par l’insertion de nœud dans la courbe
paramétrique. Ils servent entre autres à : évaluer des points sur des courbes et surfaces B-splines,
subdiviser des courbes et surfaces et ajouter des points de contrôle pour augmenter la flexibilité
du polygone de contrôle de la forme d’une courbe.

Dans ce chapitre, nous allons présenter quelques algorithmes de transformation du


polygone caractéristique des courbes de Bézier, de transformation du polygone et du vecteur
nodal des courbes B-spline, la dualité de passage entre les deux modèles.

II.2 Transformations dans le modèle de Bézier

Nous présentons dans cette partie les méthodes de transformation du polygone


caractéristique des courbes de Bézier qui seront utilisées dans la subréduction.

II.2.1 Subdivision

L'algorithme le plus fondamental pour traiter des courbes de Bézier est l'algorithme de
subdivision à une abscisse paramétrique t0 . Ceci a été conçu en 1959 par Paul de Casteljau (qui
travaillait pour la compagnie d'automobile de Citroën) et désigné sous le nom de l'algorithme de
De Casteljau. On le connaît parfois comme algorithme géométrique de construction.

Cette procédure permet de partager une courbe de Bézier de degré  en un point défini 
en deux courbes de Bézier ont le même degré n [2].

Cet algorithme s’écrit pour les courbes rationnelles comme suivant [8]:

L’expression de l’équation des charges est donnée d’après [8] par l’expression:
r
wir (t0 ) = ∑ wi , j .B j , r (t0 )
i

 wi0 (t0 ) = wi
C’est-à-dire:  r r −1 r −1
(II-01)
 wi (t0 ) = (1 − t0 ).wi (t0 ) + t0 .wi +1 (t0 )
37
Chapitre II Algorithmique des transformations

Ci0 (t0 ) = Pi

Et les pôles :  r wir −1 (t0 ) r −1 r −1
wi +1 (t 0) r −1 (II-02)
 Ci (t 0 ) = (1 − t 0 ). .Ci ( t 0 ) + t 0 . .Ci +1 (t0 )
 wir (t0 ) wir (t0 )

 R = Ci0 (t0 ) , α i = w0i (t0 ) , i = 0,..., n


Ce qui donne :  i (II-03)
Qi = Ci (t0 ) , βi = wi (t0 ) , i = 0,..., n
n −i n −i

Avec αi , βi sont les nouvelles charges associées respectivement aux polygones Ri , Qi .

Figure II.1 : Courbe de Bézier non rationnelle P(t ) de degré 5 subdivisée en deux courbes R(t ) et
Q(t ) de même degré [2].

Figure II.2 : Courbe de Bézier rationnelle de degré 5 (de poids wi ) subdivisée en deux courbes
rationnelles de degré 5 (de poids α j et β k ) [2].

II.2.2 Elévation de degré

L’élévation de degré n d’une courbe de Bézier revient à accroître d’une unité le nombre de
sommets du polygone de contrôle sans changer la courbe ; les nouveaux points de contrôle sont
n + 2 points [9] ;

Q0 = P0 , Qn +1 = Pn

  i  i (II-04)
 Qi = 1 − n + 1  .Pi + n + 1 .Pi −1 ; i = 1,..., n
  

38
Chapitre II Algorithmique des transformations

Et pour élévation de degré des courbes rationnelles, l’élévation de degré d’une courbe C (t )

de degré n donne la courbe Q(t ) de degré n + 1 est définie par ses n + 2 pôles {Qi }i =0,...,n+1

chargés par les poids {βi }i =0,...,n+1 déterminés par [2] :

 n +1− i 
Qi = Ci1−1   ; i = 0,..., n + 1 (II-05)
 n +1 

 n +1− i 
βi = wi1−1   ; i = 0,..., n + 1 (II-06)
 n +1 

Les C pq (t0 ) seront calculés par l’équation (II-02) et les w qp (t0 ) par l’équation (II-01).

Cette propriété d’élévation de degré, permet de tirer quelques conclusions :


• le processus d’élévation de degré garde la courbe de Bézier inchangée.
• la courbe de Bézier admet une infinité de représentations pour différents degrés.
• si le polygone de contrôle initial est convexe, alors tous les polygones de contrôles obtenus
par le processus d’élévation de degré seront convexes. Á la limite, le polygone de contrôle
converge vers la courbe, qui sera par conséquent convexe.

Figure II.3 : Courbe de Bézier non rationnelle de degré 3 élevée au degré 5 [2].

II.2.3 Réduction de degré

Si l'élévation de degré est regardée comme processus qui présente la redondance (utilisant
des points de contrôle n + 1 pour décrire une courbe qui peut être exactement décrite avec
seulement des points de contrôle de n ), n'est-il pas possible que nous puissions pouvoir réduire
la redondance possible en écrivant une courbe du degré n en tant qu'un du degré n − 1 ?

Farin nous indique que si nous sommes donnés une courbe arbitraire de Bézier du degré
n + 1 , nous ne pouvons pas être dans expectative de trouver une courbe identique du degré  (à

39
Chapitre II Algorithmique des transformations

moins que la courbe du degré n + 1 est le résultat de l'élévation de degré et contient la redondance
nécessaire). Le meilleur lequel nous pouvons espérer est une approximation à la courbe
originale. Farin suggère que nous supposons que la courbe que nous souhaitons au degré
réduisons a été obtenus par élévation de degré (utilisant le processus décrit ci-dessus). Alors nous
renversons ce processus imaginé d’élévation de degré (formule II-04) [10, 11]. Ceci donne les
n + 2 points de contrôle, Qi de la courbe, Qn+1 (t ) , degré élevé de Pn (t ) .

Récrivons cet algorithme pour le cas où nous sommes élevant degré la courbe Pn −1 (t ) à

Qn+1 (t ) . Tout ceci exige le remplacement de n par n −1, mais sera plus compatible à notre
examen suivant de ramener le degré d'une courbe de Bézier de n à n − 1 . La nouvelle équation
est donnée par :

i  n −i 
Qi =   .Pi −1 +   .Pi , i = 0,1,..., n (II-07)
n  n 

Notre objectif est maintenant de produire de Pi du Qi , puisque Pi sont les n points de

contrôle de la courbe de degré réduite dans ce processus d'inversion d'élévation. Ceci provoque
ce qui suit (en posant Ri = Pi ) :

Algo. Polygone 1 :

 R0 = Q0

  n   i  (II-08)
 R0 =  n − 1  .Qi −  n − 1  .Ri −1 ; i = 1,..., n
    

Les Qi sont connus, ainsi R i peut être dérivé récursivement. ( Ri sont les nouveaux points

de contrôle obtenus en ordre de gauche à droite commençant à i = 0 et continuant jusqu’à i = n .)


Selon Farin, cette récurrence fournit approximation raisonnable près de R0 .

Note. Bien que Farin ne la mentionne pas, il est à peine étonnant que l'approximation ne se
comporte pas bien plus près du point Qn ; Qn (t ) interpole Qn mais l'approximation Ri −1 (t ) ne

fait aucune utilisation à toutes les informations fournies par le point final de Qn (t ) . Nous

pourrions changer le point final Qn qui changerait nettement le chemin de Qn (t ) tout en n'ayant

aucun effet du tout sur Ri −1 (t ) [10, 11].

Une autre formule peut être pareillement dérivée, celle-ci comptant vers le bas de n − 1 en
mettant Si = Pi :

40
Chapitre II Algorithmique des transformations

Algo. Polygone 2 :
 Sn −1 = Qn

 n  n−i  (II-09)
 Si −1 =  i  .Qi −  i  .Si ; i = n − 2,...,1
    

Cette approximation exécute « décemment » près de R0 = Q0 . Si ces formules récursives


sont appliquées à une courbe élevée par degré, la courbe originale est retournée. Mais, comme
mentionné ci-dessus, ce n'est pas généralement le cas que nous traitons artificiellement une
courbe élevée par degré et le meilleur lequel nous pouvons espérer est une approximation [10].

Puisque Ri est proche raisonnable de Q0 et Si le même proche Qn , Farin suggère de


combiner les deux approximations,

 i
λi = ,
 n (II-10)
 Pi = (1 − λi ) .Si − λi .Ri ; i = 1,...n − 1

i
Farin réclame cela qui le choix de λ i = ne fournit pas de bons résultats, mais le choix du
n
i i
λi = 0 pour i < et λi = 1 pour i > fournit une approximation raisonnable suivant [12].
n n

n
Farin suggère maintenant utilisation de Ri pour i = 0,1,...,   et Si pour
2

 n   n   n n
i =   ,   + 1 ,..., n . (dans le cas où n est même et   =   , il y a un nombre impair de
 2   2   2 2
points de contrôle, ainsi nous prenons la valeur moyenne de Rn / 2 et de Sn / 2 . [13], puisque la

réduction de degré d'une courbe définie par des points de contrôle n + 1 , ainsi son argument
s'applique quand n est impair [14]).

Cette méthode a évidemment des inexactitudes sérieuses, en particulier dans la gamme


moyenne (comme a pu être prévu de la discussion ci-dessus qui a indiqué que les deux Ri (t ) et

Si (t ) étaient proche le plus satisfaisant leurs points de départ). Nous regardons à Matthias Eck
pour un raffinement de la méthode de renversé-élévation [10].

Afin de réduire l'erreur dans la discussion ci-dessus, nous avons employé la moitié gauche
de Ri et la moitié droite de Si . C'est-à-dire,

Algo. Polygone de moyen :


41
Chapitre II Algorithmique des transformations

 n
 0 si i < ,
2

1
Pi = (1 − λi ) .R i − λi .S i ; pour i = 1,...n − 1 , λi =  si i = ,
n
(II-11)
2 2
 n
1 si i > 2 ,

Et pour les courbes rationnelles, à partir des relations exprimant l’élévation de degré d’une
courbe de Bézier rationnelle de degré n et par analogie au raisonnement adopté pour la réduction
de degré des courbes de Bézier non rationnelles, nous pouvons déterminer les pôles inconnues
Ri et les Si et leurs charges respectives de poids α i et β i , ainsi [10, 13]:

 R0 = P0

 R =  n  .  wi  .P −  α i −1  . i .R ; i = 1,..., n − 1
 i  n − 1   α i  i  α i  n − 1 i −1

  n   i 
 α i =  n − i  .wi −  n − i  .α i −1
    
 (II-12)
 Sn −1 = Pn
 n  w   β  n−i 
 Si −1 =   .  i  .Pi −  i  .   .Si ; i = n − 1,...,1
  i   β i −1   β i −1   i 

 β =  n  .w −  n − i  .β
 i −1  i  i  i  i

L’expression du polygone moyen (Figure II.5) donnant l’approximation de Farin, pour le


cas rationnel devient alors [13]:

  n − i   αi   βi  i
Qi =   .   .Ri −   . .Si ; i = 0,1,..., n − 1
  n   µi   µi  n − 1
 (II-13)
  n−i   i 
 µ =   .α −   .βi
 n−i 
i i
  n 
L’application successive de cette méthode produit une réduction du degré n au degré
m < n , par une réduction d’un degré à chaque étape. Les erreurs d’approximation s’ajoutent à
chaque étape [2].

42
Chapitre II Algorithmique des transformations

Figure II.4 : Courbe de Bézier non rationnelle de degré 3 réduite au degré 2 par les deux méthodes de
polygone 1 et 2 [2].

Figure II.5 : Courbe précédente de degré 3 réduite par la méthode du polygone moyen (Méthode de
Farin) [2].

Figure II.6 : Courbe de Bézier rationnelle de degré 6 réduite au degré 5 par la méthode du polygone
moyen w = {1,1, 2,0.8,0.5,0.8,1.2,1} ; w ' = {1,1.304,0.516,0.516,1.304,1} [2].

II.2.4 Raccordement des courbes

Le raccordement de deux courbes C1(t ) et C 2(t ) de Bézier en un point donné consiste à


rassembler les deux courbes en ce point en respectant une continuité géométrique désirée.

43
Chapitre II Algorithmique des transformations

Le raccordement de deux courbes non rationnelles de Bézier C1(t ) et C 2(t ) de même ordre,
au point C 1(1) = C 2(0) , pose autant de contraintes que l’ordre de continuité géométrique à

satisfaire. Pour avoir une continuité géométrique G k (d’ordre k ) entre deux courbes C1(t )

définie par le polygone {C1i} et S (t ) définie par le polygone {C 2i} , il suffit de


i = 0,..., n i = 0,..., n

satisfaire les k + 1 conditions:


i i
d  d 
 dt  C1(1) =  dt  C 2(0) , i = 0,..., k ≤ n (II-14)

Sachant que les k premières dérivées de C1(t ) au point t = 1 dépendent de ses k + 1


derniers pôles, et que les k premières dérivées de C 2(t ) dépendent de ses k + 1 premiers pôles,
il suffit seulement de calculer les k + 1 premiers pôles de C 2(t ) en fonction des k + 1 derniers

pôles de C1(t ) , les autres pôles n’ont pas d’influence sur la continuité G k désirée. Les pôles C 2i

seront alors calculés par [6] :

C 2i =C1n −1(2) , i = 0,..., k


i
(II-15)

Il s’agit ici d’une extrapolation de C1(t ) pour le point C 2(t ) donc t = 2 .

Si k = n les deux courbes C1(t ) et C 2(t ) , sont la subdivision d’une autre courbe C (t ) d’après
le principe même de la subdivision [6].

Pour raccorder une courbe rationnelle de Bézier C1(1) définie par ses pôles Ri , et ses poids

α i à une courbe rationnelle de Bézier C 2(0) , de même ordre, définie par ses pôles Si chargés par
les poids β i , au point C1(1) =C 2(0) , en respectant une continuité géométrique d’ordre k , il suffit

de calculer les k + 1 premiers pôles de C 2(0) et leurs charges par [2] :

 C 2 =C1i (2) , i = 0,..., k


 i i n −1 (II-16)
 βi = α n−i (2)

II.3 Transformations dans le modèle B-spline

Pour permettre le passage à la réduction de degré des courbes B-spline, nous aurons besoin
des transformations du polygone et du vecteur nodal. Nous présentons ici les méthodes
indispensables à cette application.

44
Chapitre II Algorithmique des transformations

II.3.1 Algorithme d’insertion de nœuds de Boehm

L'idée est de déterminer le polygone de contrôle de la courbe après avoir ajouté un nœud
de multiplicité 1 ou de multiplicité s supérieure à 1, dans la séquence nodale (vecteur nœud)
d’une courbe B-spline. La courbe est inchangée suite à cette modification : ni la forme ni la
paramétrisation ne sont affectées.

Cette procédure permet d’évaluer et de subdiviser la courbe, ajout de points de contrôle


(élévation de degré) et d’obtenir une flexibilité (introduire plus de degré de liberté) à notre
courbe B-spline.

D’abord, nous allons vue comment sera l’insertion d’un nœud de multiplicité =1 :

Soit une courbe B-spline de degré k possédant n + 1 points de contrôle { Pi }i =0,...,n et un

vecteur de nœuds T = (t0 ,..., tn + k +1 ) , nous souhaitons insérer dans T un nouveau nœud t avec

th ≤ t < th+1 .


= (tɵ 0 = t ,..., tɵ h = t , tɵ h +1 = tɵ,..., tɵ m +1 = t ) ,
Ainsi le nouveau vecteur de nœuds sera T 0 h m

l’algorithme de Boehm d’insertion calculant n + 2 nouveaux points de contrôle {Qi }i = 0,...,n +1

s’écrit selon [15] :

1 0≤i ≤ h−k
 ɵ
 t − ti
Qi = αi .Pi + (1 − αi ).Pi −1 avec α i =  h − k +1 ≤ i ≤ h (II-17)
 ti + k − ti
0 h +1 ≤ i ≤ n + 2

Les seuls points de contrôle qui influencent l’arc de courbe sont : Ph−k +1, Ph −k + 2 ,..., Ph .

En généralisant la démarche, supposons tɵ ∈ [th , th +1[ de multiplicité s (0 ≤ s ≤ k ) . On veut

l’insérer r fois avec r + s ≤ k .

On note Qir les points de contrôle de la r ième insertion. Donc, on a selon [11] :

1 0 ≤ i ≤ h − k + r −1
 ɵ
 t − ti
Q ir = α ir .Q ir −1 + (1 − α ir ).Q ir−−11 avec α i = 
r
h−k +r ≤i ≤ h−s (II-18)
 ti + k − r +1 − ti
 0 h − s +1 ≤ i ≤ n + 2

45
Chapitre II Algorithmique des transformations

Figure II.7 : Schéma de l’algorithme de l’insertion d’un nœud de multiplicité s de Boehm [15].

Les seuls points de contrôle qui influencent l’arc de courbe sont :


Ph−k + r −1, Ph−k + r −2 ,..., Ph− s .

Par analogie, nous pouvons construire l’algorithme d’insertion d’un nœud tɵ ∈ [t h , t h +1[ pour
une courbe une courbe B-spline rationnelle de degré k comme suit :

1 0≤i ≤ h−k
 ɵ
αi .wi .Pi + (1−αi ).wi −1.Pi −1  t − ti
Q = avec α i =  h − k +1 ≤ i ≤ h (II-19)
i αi .wi + (1−αi ).wi −1  ti + k − ti
0 h +1 ≤ i ≤ n + 2

II.3.2 Suppression de nœuds

Cette procédure permet de supprimer un nœud du vecteur nodal d’une courbe B-spline, la
courbe devient alors de degré immédiatement inférieur. La suppression de nœuds est considérée
comme étant le processus inverse de l’insertion de nœuds. L’insertion étant une transformation
exacte, c’est à dire que la courbe obtenue est exactement similaire à la courbe initiale, mais la
suppression de nœuds produit en général une approximation de la courbe initiale. Un nœud
inséré peut être supprimé en retrouvant exactement la courbe initiale (nœud surabondant).

Avant la suppression de nœuds, il doit prendre en compte [15]:

A chaque nœud, la continuité est au minimum Gk −s où s est la multiplicité du nœud (Ex.


une courbe de degré 3 a une continuité G2 si les nœuds sont simples (multiplicité 1)).

Dans le cas ou la continuité Gr effective de la courbe à un nœud donné est supérieure à


Gk −s , alors on peut baisser la multiplicité du nœud de la valeur d = k − s − r ; dans le cas
contraire, on ne peut pas retirer le nœud sans modifier l'allure de la courbe.

46
Chapitre II Algorithmique des transformations

Avant de retirer effectivement un nœud on doit donc vérifier la continuité de la courbe de


part et d'autre du nœud. L'algorithme suivant permet de décider tout en calculant les nouveaux
points de contrôle.

On tente de supprimer le nœud t = t r ≠ t r +1 qui est de multiplicité s .

i = r −k ; j = r −s

Tant que T = (t0 ,..., tn + k +1 )

t −ti t −t j
Calculer α i = ; αi =
t i +k +1 − t i t j + k +1 − t j

Pi 0 − (1 − α i ).Pi1−1 Pj0 − (1 − α j ).Pi1+1


Calculer Pi1 = ; Pj1 =
αi αj

i = i +1 ; j = j −1

Fin tant que

Les deux termes Pi1−1 et Pj1+1 sont connus par la première itération, il s’agit respectivement de

Pr0−k −1 et Pr0−s +1 .

La vérification de la possibilité d'enlever le nœud fait comme suivant [15] :

Si (i = j )

Calculer P = αi .Pi 1−1 − (1 − αi ).Pi 1+1

Calculer la distance entre P et le point de contrôle Pi

Sinon

1 1
Calculer la distance entre P i −1 et P i +1

Si la distance est inférieure à une tolérance ε , remplacer les points de contrôle Pd par les
1
nouveaux point de contrôle P . d

Exemple : Suppression de t =t 5 avec T = {0,0,0,0,1,1, 2, 2, 2, 2} et (r = 5, k = 3, s = 2)

47
Chapitre II Algorithmique des transformations

Figure II.8 : la courbe avant la suppression de nœud t =t 5 [15].

t −t 2 1 t −t 3 1
i = r −k = 2 ; j = r −s = 3 ; α2 = = ; α3 = =
t 6 −t 2 2 t 7 −t 3 2
P20 − (1 − α 2 ).P11 P30 − (1 − α 3 ).P41
P21 = ; P31 =
α2 α3

Où : P21 = P1 et P41 = P4 ;

Le nouveau vecteur nœud est T = {0,0,0,0,1, 2, 2, 2, 2}

Figure II.9 : La courbe aprés la suppression de nœud t = t5 = 1 [15].

Maintenant, suppression de t =t 4 sachant que T = {0, 0, 0, 0,1, 2, 2, 2, 2} et (r = 4, k = 3, s = 1)

t − t1 1 t − t3 1
i = r − k = 1 ; j = r − s = 3 ; α2 = = ; α2 = =
t5 − t1 2 t7 − t3 2
P10 − (1 − α1 ).P01 P30 − (1 − α3 ).P41
P11 = = 2 P10 − P01 ; P31 = = 2 P30 − P41
α1 α3

Où : P01 = P0 et P41 = P4 ;

48
Chapitre II Algorithmique des transformations

Figure II.10 : Polygone de contrôle final avec T = {0,0,0,0, 2, 2, 2, 2} [15].

La figure suivante illustre une suppression du nœud t = 0.5 pour une courbe B-spline
rationnelle de degré 4 avec T = {0,0,0,0, 0, 0.2, 0.5,0.6, 0.8,1,1,1,1,1} et ses charges
w = {1,1.2,0.8,1.3,0.7,1.3,0.8,1.2,1} qui donnent les nouvelles charges
w ' = {1,1.2,0.72,1.648,1.6,0.8,1.2,1}

Figure II.11 : Suppression d’un nœud pour une courbe B-spline rationnelle de degré 4 [2].

II.3.3 Subdivision et l’algorithme d’Oslo

Les algorithmes d’Oslo1 et Oslo2 sont les algorithmes utilisés dans le tracé des B-splines.
Le principe des algorithmes d’Oslo est qu’il faut recalculer tous les points, puisque il peut y
avoir plusieurs nouveaux nœuds [5]. Ils permettent aussi d’augmenter le nombre de points de
contrôle d’une courbe en insérant simultanément des nœuds, de subdiviser une courbe B-spline
en deux courbes B-spline au point t = t0 , de convertir une courbe B-spline en courbes de Bézier
et de produire un algorithme de contournage B-spline [7].

Soit une courbe B-spline C (t ) de degré k possédant n points de contrôle {Pi }i =0,...n−1 et un

vecteur de nœuds T = (t0 ,..., tn + k ) . Après l’insertion des nouveaux nœuds, nous obtenons une

nouvelle courbe R(u) possédant m points de contrôle {Qi }i =0,...,m−1 et un vecteur de nœuds

U = (u0 ,..., um+1 ) où m > n [5].


49
Chapitre II Algorithmique des transformations

L’objectif est de déterminer les nouveaux points de contrôle Qi satisfont la condition :

C(t ) = R(u) ; [5]. En suivant, nous allons voir l’algorithme Oslo1 puis Oslo2.

L’algorithme Oslo1 [5] s’écrit comme suit :

n −1
Qi = ∑ α ir, j .Pi , 0 ≤ j ≤ m − 1 (II-20)
i =0

Avec α ir, j est donné par la relation récursive ci-dessous :

1 si ti ≤ u j < ti +1
α ir, j =  (II-21)
0 autrement

u j + r −1 − t i t i + r − u j + r −1
αir, j = .αir,−j1 + αir+−1,1 j , Pour 1 ≤ r ≤ k (II-22)
t i + r −1 − t i t i + r − t i +1

En tenant compte des conditions :

 ∃h : th ≤ u j < th +1
 r +1 (II-23)
 α h−r , j ,...., α h, j ≠ 0
r +1

n −1
Notons que ∑ α ir, j = 1 et α ir, j = 0 , si u j < ti ou ti + r +1 ≤ u j
i =0

Figure II.12 : Le nouveau polygone de contrôle Q i obtenu par l’algorithme Oslo1 en insérant
deux nouveaux nœuds [5].
Algorithme Oslo2

Supposons que th ≤ u j < th+1 et u j ≤ u j +1 . L’algorithme Oslo2 obtenu par combinaison des

relations des formules (II-20, II-21 et II-22) et permet de calculer directement les points Q i par
la relation de récurrence suivante [5] :

50
Chapitre II Algorithmique des transformations


 0
 Pi , j = Pi h−k ≤i ≤ h
 r +1
 Pi , j = (1 − α i , j ).Pi −1 + α i , j .Pi r = 0,..., k − 1 , h − k + r + 1 ≤ i ≤ h
r r r r
(II-24)
 u −t
avec α ir, j = j + k − r i
 ti + k − r − ti

Finalement, nous obtenons les points de la courbe B-spline : Q j = Phk, j

La structure de l’algorithme d’Oslo1 est analogue respectivement à l’algorithme de De Boor, et


celle de l’algorithme d’Oslo2 est la même que celle de l’algorithme de De Boor-Cox et de
l’algorithme de Boehm [5].

Algorithme de Boehm c'est un cas particulier de l’algorithme d 'Oslo. Il insère une unique
valeur nodale.

Dans le cas des courbes B-splines rationnelles, il faut faire une analogie de ces deux
algorithmes d’Oslo pour obtenir les Q j avec ses poids w j .

II.3.4 Changement de base

Le passage du modèle de Bézier au modèle B-spline et inversement est une démarche


duale. D’une coté cette dualité part de la propriété de la forme spéciale du vecteur nœud
T = {0,...,  avec un algorithme d’évaluation de B-spline qui permettent de déterminer une
0 ,1,...,1}
k +1 k +1

courbe de Bézier.

Une autre transformation d'une courbe B-spline en segments de Bézier se fait quand on
sature chaque nœud distinct jusqu'à ce que sa multiplicité soit égale à k . Ceci est fait à l'aide de
l'algorithme d'insertion de nœud de Boehm. On obtient alors une séquence nodale de la forme :
T = {a
,...,
 a , b
,..., b , c z ,..., z} , chaque valeur distincte de t correspond à un des point de
,..., c , 
k +1 k k k +1

contrôle de la courbe [15].

51
Chapitre
re II Algorithmique des transformations

Figure II.13 : Courbe B-spline de degré 3 avec T = {0, 0, 0, 0,1, 2,3,3,3,3} [15].

Figure II.14 : Courbe B-spline


B de degré 3 avec T = {0,0, 0,0,1,1,1, 2, 2, 2,3,3,3,3} [15].

Figure II.15 : Courbes de Bézier de degré 3 [15].


[1

Donc, nous pouvons dire qu’une courbe B-spline


B de degré k est un ensemble de courbes
de Bézier de même degré.

La conversion d’un modèle B-spline


B peut faire aussi par un algorithme d’Oslo.
d’Oslo

L’autre coté de cette


ette dualité s’agit de déterminer la forme B-spline
spline d’une ou de plusieurs
courbe de Bézier de degré k raccordées avec une continuité G p . Ceci, on doit pose les vecteurs
nœuds est calculé en assignant une multiplicité k + 1 aux premiers et aux
au derniers nœuds, et en
mettant des intervalles proportionnels aux valeurs limites du paramètre t de chaque courbe de
Bézier par rapport
port à la somme des intervalles, puis on peut déterminer la forme qui englobant
l’ensemble des courbes de Bézier définies par l’ensemble ; c’est le chemin contraire du passage
du modèle B-spline au modèle de Bézier.
Bézier

52
Chapitre II Algorithmique des transformations

II.3.5 Algorithme WM

A partir de la subdivision définie, les pôles de la courbe B-spline non uniforme se


déterminent comme suit [2] :

Considérant t ∈ ti , ti +1  et i ∈ [ p , np − 1] , de l'algorithme de De Boor (ou Cox-De Boor)

nous avons la formule de la B-spline locale:

i
C (t ) = ∑ Pj .N j , p (t ) (II-25)
j =i − p

et comme l'arc de Bézier dans l'intervalle ti , ti +1  peut s'écrire:

 t − ti  p  t − ti 
C (t ) = C '   = ∑ Q j ,i .B j , p   (II-26)
 ti +1 − ti  j =0  ti +1 − ti 

Où :

Q j ,i : sont les pôles de l'arc de Bézier ;

C '(t ) = Ch (t ) : ou un point extrémité de Ch (t ) ;

De ces deux expressions, nous obtenons:

i p  t − ti 
∑ Pj .N j , p (t ) = ∑ Qk ,i .Bk , p   (II-27)
j =i − p k =0  ti +1 − ti 

Si on connaît la décomposition d'une B-spline non uniforme dans la base de Bernstein de degré
p sur l'intervalle ti , ti +1  :

p  t − ti 
N j , p (t ) = ∑ ϕk , p , j .Bk , p   (II-28)
k =0  ti +1 − ti 

La courbe B-spline donc s'exprime :

p  t − ti 
C (t ) = ∑ Qk ,i .Bk , p  
k =0  ti +1 − ti 

i p  t − ti 
C (t ) = ∑ ∑ ϕk , p , j .Pj .Bk , p   (II-29)
j =i k =0  t − ti 
 i +1 

53
Chapitre II Algorithmique des transformations

Comme les fonctions de Bernstein Bk , p (t ) ( k ∈ [ 0, p ]) forment une base de l'espace

vectoriel de dimension p + 1 des polynômes de degré p , les pôles B-spline Pj peuvent alors être

calculés par la résolution du système linéaire suivant:

i
∑ ϕk , p ,i .Pj − Qk ,i = 0 pour k = 0,1,..., p
j =i − p

Ce système peut aussi s'écrire sous la forme matricielle:

{ϕ }.{P } = {Q }
k , p, j j k ,i (II-30)

pour j ∈ [i − p , i ] , k ∈ [ 0, p ] , et i ∈ [ p , np − 1]

Où :

{ϕ } : est la matrice de transformation de représentation B-spline en représentation Bézier,


k , p, j

{P } : sont les pôles de la courbe B-spline pour t ∈ t , t


j i i +1 
 { }
et Qk ,i les pôles de l'arc de Bézier

dans l’intervalle ti , ti +1  .

ϕ0, p ,i − p ϕ0, p ,i − p +1 ... ϕ0, p ,i   Pi − p   Q0,i 


ϕ ... ϕ1, p ,i   Pi − p +1   Q1,i 
 1, p ,i − p ϕ1, p ,i − p +1    
 . . ... .   .   . 
Ce qui peut s'écrire:  . = 
ϕk , p ,i − p ϕ k , p ,i − p +1 ... ϕk , p ,i   Pj  Qk ,i 
 . . ... .   .   . 
     
ϕ p , p ,i − p ϕ p , p ,i − p +1 ... ϕ p , p ,i   Pi  Q p ,i 

p étant le degré

j ∈ [ i − p, i ] , k ∈ [ 0, p ] , i ∈ [ p, np − 1] .

La solution est:

{P } = {ϕ } .{Q }
−1
j k , p, j k ,i (II-31)

Les formules de récurrence sur les fonctions Bernstein et sur les fonctions B-spline
permettent d'établir une formule de récurrence pour le calcul des coefficients ϕ k , p , j de la façon

suivante [7] :

54
Chapitre II Algorithmique des transformations

k   ti +1 − ti   ti + p +1 − ti +1   p − k   t −t 
ϕk , p , j = . ϕk −1, p −1, j   + ϕ k −1, p −1, j +1    + . ϕ k , p −1, j  i j
 t j+ p − t j 
p   t j+ p − t j   t j + p +1 − t j +1   p   
(II-32)
t − t  
+ ϕk , p −1, j +1  j + p +1 i +1  
 t j + p +1 − t j +1 
  

Dans tous les intervalles [ti , ti +1 ] , i ∈ [ p , np − 1] : C (t ) = C '(t ) .

En effet, pour t ∈  t p , t np −1  , sur tous les intervalles [ti , ti +1 ] , en utilisant l'algorithme WM,

nous pouvons calculer p + 1 pôles B-spline Pi − p ,..., Pi . Alors les pôles B-spline, qui sont définis

dans les intervalles voisins [ti , ti +1 ] et [ti +1 , ti + 2 ] ( i ∈ [ p , np − 1] ), ont p pôles communs.

Successivement, nous pouvons complètement définir tous les pôles de cette représentation
B-spline non uniforme, et obtenir le polygone Pi .

L'algorithme WM nous propose un système linéaire entre le polygone de Bézier et le


polygone B-spline local. En résolvant ce système, nous pouvons résoudre le problème consistant
à représenter une ligne composée par un ensemble d'arcs de Bézier. Cet algorithme est également
valable pour le problème de surface. Il s'agit là d'une méthode locale dans la mesure où elle traite
le problème tronçon par tronçon. La partie la plus importante dans cet algorithme est la
définition des coefficients entre la base Bernstein et la base B-spline. Ces coefficients sont
déterminés suivant une procédure récurrente. L'algorithme WM est une méthode globale, facile à
implémenter et à utiliser [7].

II.4 Conclusion

Ce chapitre est une introduction au chapitre suivant, car il présente des algorithmes
essentiels pour faire la réduction de degré des courbes paramétrique (modèle de Bézier et B-
spline) en vue de besoin d’échange de données entre systèmes C.F.A.O.

55
Chapitre III Réduction de degré des courbes de Bézier

III.

III.1 Introduction

La réduction de degré de courbes de Bézier est l'un des problèmes importants dans CAGD
(Dessin Géométrique Assisté par Ordinateur) ou CFAO.

Si, en CFAO, l’intérêt de la réduction-élévation de degré des courbes et surfaces gauches


est avéré, s’agissant notamment de l’échange de données entre systèmes ou de l’élimination du
risque d’incompatibilité outil-pièce en usinage, il n’en demeure pas moins qu’en modélisation
CAO, les possibilités de modification locale, de l’augmentation de la flexibilité et de la
simplification de la complexité géométrique des modèles de représentation, ainsi que la
simplification des calculs d’intersections et des manipulations infographiques, restent encore des
objectifs à atteindre par l’intégration de la conversion par approximation dans les systèmes de
CFAO [12].

Notons le terme conversion par approximation, puisque nous rencontrons des erreurs
inévitables entre la courbe mère et la courbe résultante après la réduction de degré ; la démarche
de l’esprit va fait tant que possible pour minimiser ces erreurs tout en respectant certaines
propriétés géométriques des courbes et des surfaces , comme répondre à un ordre de continuité
géométriques en respectant plusieurs tolérances spécifiques à l’application (position, tangente,
courbure, torsion,…).

Nous expliquons dans ce chapitre le principe de chacune des méthodes de réduction de


degré (conversion par approximation) celles de Forrest, Bensalah, Hoschek, et enfin la méthode
de Eck.

III.2 Etat de l’art

La première méthode de conversion des courbes de Bézier a été introduite par Forrest (en
1972), avant que Farin (1983), Watkins & Worsey (1988), Hoschek (1988), Bensalah, puis Eck
(1993) et (1995), ne proposent des algorithmes de conversion par approximation plus ou moins
performantes, mais accusant toutefois certaines lacunes tels que: nécessité d’utilisation de
méthodes non linéaires produisant des temps de calcul relativement importants, coefficient de
réduction fixé à priori, difficulté de respecter des ordres de continuités géométriques aux
raccordements sans grand effort de calcul, trop grand nombre de subdivisions des entités réduites
et passage aux courbes rationnelles et aux surfaces de Bézier et B-spline non rationnelles et
rationnelles nécessitant des calculs souvent sophistiqués. La première catégorie d’algorithmes est
basée sur le principe inverse de l’algorithme d’élévation de degré pour la réduction de degré et
les polynômes de Tchebychev et respectivement de Legendre pour la minimisation de l’erreur
56
Chapitre III Réduction de degré des courbes de Bézier

d’approximation, pendant que la deuxièmes catégorie d’algorithmes reposent sur les propriétés
des courbes osculatrices pour la réduction de degré et sur la minimisation de l’erreur
d’approximation au sens des moindres carrés avec une optimisation paramétrique [16, 17].

III.3 Principe de Réduction de degré

La réduction de degré d’une courbe de Bézier se fait en diminuant le nombre de points de


contrôle de la courbe initiale. La courbe obtenue est une approximation de la courbe traitée avec
des erreurs commise dans le processus de réduction.

Nous pouvons simplifier et schématiser sous forme d‘un organigramme le processus de


réduction de degré comme illustré ci-dessous :

57
Chapitre III Réduction de degré des courbes de Bézier

Début

Réduction

034
Entrées
04

*
*. 0
Polygone : )* +,,…,. 0

Tolérance de position : !
)0 +,,…, où " 2 
Recherche de nouveau polygone :

Ordre de continuité : /



  "#$|& ' &( |


Calcul de :

Subdivision

 !
*1 
Non

*1  : point de subdivision


Oui

Sortie

0
0
Polygone : )0 +,,…,
Fin

Figure III.1 : Organigramme de conversion par approximation (réduction de degré).

58
Chapitre III Réduction de degré des courbes de Bézier

III.3.1 Méthode de Forrest

C’est une méthode classique, où en inversant l’algorithme de l’élévation de degré (formule


de Forrest), Forrest (1972), Piegl et Taille (1995) ont proposés un algorithme de réduction
combinant des formules en prenant la moitié gauche de R(t ) et la moitié droite S (t ) celles-là de
la méthode de Farin (citée au chapitre précédent) [2].

La méthode présentée ici est celle de Piegl et Tiller (en 1995) [17] basée sur les
fondements de Forrest [2].

III.3.1.1 Algorithme de réduction

La réduction de degré d'une courbe C (t) de Bézier du degré  par étapes est de trouver

les nouveaux points de contrôle {Q i } d'une courbe Q (t) de Bézier du degré n − 1 ;

n n −1
C (t ) = ∑ B i ,n (t ).Pi → Q (t ) = ∑ B i ,n −1 (t ).Q i (III.01)
i =0 i =0

Il y a deux formules récursives bien connues d'extrapolation comme suit (suivant Forrest) [12] :
(Algo. Polygone 1) qui donne R (t ) produisant une bonne approximation au voisinage de t = 0 et
(Algo. Polygone 2) qui donne S (t ) produisant une bonne approximation au voisinage de t = 1

Forrest et autres, a choisi l'algorithme de réduction de degré du type de mélange de points


médians par étapes pour la solution unique donné comme suivant [2, 11]:

8 
6
n -2
si n et paire 
R i , pour i = 0,...,
6
2
6
6
S , n
pour i = ,..., n − 1
6
 i 2

7
n -3 A
Qi = R i , pour i = 0,..., 2 (III.02)
6

6si n est impaire  .  R ( n −1) + S ( n −1) 
1  
6
6
2  2 2 

6
 n +1
5
S i , pour i = ,..., n − 1
 2

Il est beaucoup plus facile de mettre en application la méthode de mélange de points


médians que les algorithmes basés sur la meilleure approximation ou l'optimisation non linéaire.
D'ailleurs, elle fournit une fonction d’erreurs (paramétrique) explicite simple d'approximation
comme suit [11] :

59
Chapitre III Réduction de degré des courbes de Bézier

e (t ) = C (t ) − Q (t ) =

8 B
6
1  
n +1 (t ). P( n +1) 2 − .  Q ( n −1) − Q ( n +1)  , si n paire
,n 2  2 2 

7 1  n −1 
=
2
A (III-03)
6 1 −
5
 B ( n −1) ,n (t ) − B ( n +1) ,n (t ) . R ( n −1) (t ) − S ( n −1) (t ) , si n impaire
2  2 n  2 2 2 2

Les valeurs maximum de la fonction d’erreurs peuvent être calculées avec précision : dans
cas  est paire, la fonction erreur a un maximum à t = 0.5 ; par contre, pour  impaire la
fonction d‘erreurs s’anulle à t = 0.5 , puisque B( n -1) (0.5) = B( n +1) (0.5) à cause de la symétrie
,n ,n
2 2

des polynômes de Bernstein et aussi a deux maximum égaux donnés par l’équation quadratique
suivant [11] :

(n − 1)
t2 − t + =0 (III.04)
4n

En considérant la formule précédente de l’erreur e (t ) , nous constatons que [2]:

- Cette formule a un contrôle paramétrique de l’erreur. Le maximum géométrique n’est pas


nécessairement atteint à la même valeur paramétrique de t ,

- l’erreur est connue précisément le long de la courbe, ce qui évite de calculer l’erreur en
chaque point de la courbe,

- l’erreur maximale est poussée vers le milieu de la courbe,

n −1
- la courbe initiale et la courbe réduite ont une continuité d’ordre aux extrémités, ce
2
qui est une propriété très importante à considérer lors d’une réduction de degré.

Figure III.2 : Courbe de Bézier de degré 6 réduite au degré 5 [2].

60
Chapitre III Réduction de degré des courbes de Bézier

Figure III.3 : Erreur de position de la courbe précédente [2].

Figure III.4 : Variation de la courbure courbe précédente et sa courbe réduite [2].

L’application successive de cette méthode produit une réduction du degré n au degré m < n , par
une réduction d’un degré à chaque étape. Par conséquence, les erreurs d’approximation
s’ajoutent à chaque étape. En appliquant un ordre de réduction de degré k , on peut donc
construire l’algorithme FOR suivant :

Algorithme FOR

Données : {Pi }i = 0,..., n polygone de la courbe, k ordre de la réduction ;

Pour i = 0,1,..., n , W i = Pi

Pour r = 1, 2,..., k

R 0 =W 0 , S n -1 =W n

Pour i = 1, 2,..., n -1

61
Chapitre III Réduction de degré des courbes de Bézier

 i  i
R i = 1 + W. i− .R i −1
 n −i  n −i
Wi = Ri

Fin pour

Pour i = n − 1, n − 2,...,1

 n −i  n −i
S i −1 = 1 +  .W i − Si
 i  i
Wi = Si

Fin pour

n = n −1

Fin pour

 n -k
Q i = R i , pour i = 0,...,
2
Si ( n − k est paire alors), 
Q = S n −k
pour i = ,..., n
 i i
2

 n − k −1
Q i = R i , pour i = 0,...,
2

 n − k + 3
Sinon ( n − k est impaire), Q i = S i , pour i = ,..., n
 2
Q ( n − k +1) / 2 = (R ( n − k +1) / 2 + S ( n − k +1) / 2 ) / 2

Fin si

Résultat : {Q i }i =0,...,n − k polygone de degré (n − k )

Figure III.5 : Courbe de Bézier de degré 9 réduite au degré 8 [2].

62
Chapitre III Réduction de degré des courbes de Bézier

Figure III.6 : Erreur de position de la courbe précédente [2].

Figure III.7 : Variation de la courbure courbe précédente et sa courbe réduite [2].


III.3.1.2 Algorithme de sub-réduction

Nous constatons que l’algorithme FOR produit une approximation en imposant une
continuité maximale C (m-n )/2 aux extrémités de la courbe. En associant à cette méthode de
réduction l’algorithme de subdivision nous obtenons l’algorithme SUB-FOR permettant de
respecter une tolérance ε 0 [2].

L’algorithme de subdivision qui sera utilisé dans toutes les méthodes de sub-réduction est
l’algorithme SUB suivant :

Algorithme SUB :

Données : {Ci }i = 0,..., n polygone de contrôle, t 0 abscisse curviligne du point du subdivision ;

Faire l’algorithme de De casteljau ;

63
Chapitre III Réduction de degré des courbes de Bézier

Pi = C 0 (t 0 )
i

 n −i
Qi = C i (t 0 )

Résultat : {Pi }i = 0,...,n et {Qi }i =0,...,n

Algorithme SUB-FOR :

Données : {Pi }i =0,..., n polygone de contrôle ordre de la réduction, ε 0 tolérance de position,

N : Nombre de pas ;

n * = 0; n ** = 0

Pour j = 0,1,..., n

FOR (Pj , k → Q )

t = 0; E max = 0

Tant que (t <1) faire

 1 
t =t +  ; d = Q (t ) − Pj (t )
N 

Si d <E max alors E max = d

Fin faire

Si E max >ε 0 alors

1
SUB (P j , t 0 = → P *, P **)
2

n * = n * +2; N = N / 2

Pour i = 0,1,..., n

Pi n *−1 = P * i ; Pi n * = P **i

Fin pour

Sinon

Pour j = 0,1,..., n − k

Q jn ** = Q j

64
Chapitre III Réduction de degré des courbes de Bézier

Fin pour

n ** = n ** + 1

Fin si

Fin pour

Résultat : {Q i j }
j = 0,..., n **
et n ** nombre de courbes de degré (n − k ) .
i = 0,..., n − k

Figure III.8 : Courbe de degré 16 réduite en 5 courbes de degré 6 [2].

Figure III.9 : Erreur de position le long de la courbe de degré 16 [2].

La figure III.8 représente une courbe de Bézier non rationnelle de degré 16 réduite en 5
courbes de degré 6 par l’algorithme SUB-FOR avec ε 0 = 0.01 et k = 10 . La figure III.9 qui
représente la variation de l'erreur de position le long de la courbe montre que la tolérance fixée
est respectée et que les courbes obtenues sont continues aux points communs.

65
Chapitre III Réduction de degré des courbes de Bézier

III.3.2 Méthode de Bensalah

III.3.2.1 Algorithme de réduction

La méthode de réduction proposée par Bensalah est une assimilation à celle de Farin, où
Bensalah a prend le polygone de la courbe mère à réduire par (Algo. Polygone 1) jusqu’à un
ordre de réduction k qui donne la solution R (t ) tel qu’il fait la même action avec (Algo.
Polygone 2) qui donne la solution S(t), puis il prend Q (t) par (Algo. Polygone moyen) qui est
une moyenne pondérée de R (t ) et S (t ) .

A’ la lumière de là, les algorithmes de base de la méthode de Bensalah s’écrit sous la


forme suivante [2] :

Algorithme BEN1 :

Données : {Pi }i =0,..., n polygone de contrôle, k : ordre de la réduction ;

Pour r = 0,1,..., k

Algo polygone 1 : (Pi → R i )

n = n −1

Fin pour

Résultat : {R i }i = 0,..., n -k

Algorithme BEN2 :

Données : {Pi }i =0,..., n polygone de contrôle, k : ordre de la réduction ;

Pour r = 0,1,..., k

Algo polygone 2 : (Pi → S i )

n = n −1

Fin pour

Résultat : {S i }i=0,...,n-k

Algorithme BENm :

Données : {Pi }i =0,..., n polygone de contrôle, k : ordre de la réduction ;

66
Chapitre III Réduction de degré des courbes de Bézier

BEN1 : (Pi , k → {R i }i =0,...,n -k )

BEN2 (Pi , k → {S i }i =0,...,n -k )

Pour r = 0,1,..., k

(n - k - i ) i
Qi = .R i + .S i
(n - k ) (n - k )

Fin pour

Résultat : {Q i }i=0,...,n-k

Figure III.10 : Courbe de degré 5 réduite au degré 4 par BEN1 et BEN2 [2].

Figure III.11 : Courbe précédente de degré 5 réduite au degré 4 par BENm [2].
III.3.2.2 Algorithme de sub-réduction

Les deux solutions de l’algorithme de réduction de degré des courbes de Bézier ne sont pas
très efficaces pour toute la courbe, mais elles sont quand même pour une partie, donc en partant
d’une courbe P (t ) de degré n on peut faire une réduction du degré puis au point ou on atteint la
tolérance on subdivise en deux courbes la première de degré (n − k ) et l’autre de degré n puis
on fait la même chose à la deuxième courbe et ainsi de suite, jusqu’à la fin de la courbe. Ce
raisonnement est la base du fonctionnement de l’algorithme SUB-BEN. Nous remarquons que
67
Chapitre III Réduction de degré des courbes de Bézier

pour chaque itération on retrouve deux subdivisions, une au début de la courbe par la méthode du
« Algo. Polygone 1 », l’autre à la fin de la courbe par « l’Algo. Polygone 2 ».

Algorithme SUB-BEN :

Données : {Pi }i =0,..., n polygone de contrôle, k ordre de la réduction, ε 0 tolérance de position,

N : Nombre de pas ;

(*)BEN1 : (Pi , k → {Q i }i =0,...,n -k )

s = 0; d = Pn − Q n -k

Si (d > ε 0 ) alors

1
t=
N

Tant que ( P (t ) − Q (t ) < ε 0 ) faire

1
t =t +
N

Fin faire

1
t0 = t − ;s = s +1
N

SUB : (Q i , t 0 → Q 0i ,Q 1i );SUB : (Pi , t 0 → P 0i , P 1i )

Q is = Q 0i , pour i = 0,1,..., n - k

Pi = P 1i pour i = 0,1,..., n

1
N =N −
t

BEN2 : (Pi , k → {Q i }i =0,...,n -k )

s = 0; d = Pn − Q n -k

Si (d > ε 0 ) alors

1
t=
N

68
Chapitre III Réduction de degré des courbes de Bézier

Tant que ( P (1 − t ) − Q (1 − t ) < ε 0 ) faire

1
t =t +
N

Fin faire

1
t0 = 1−t + ;s = s +1
N

SUB : (Q i , t 0 → Q 0i ,Q 1i );SUB : (Pi , t 0 → P 0i , P 1i )

Q is = Q 1i , pour i = 0,1,..., n - k

Pi = P 0i pour i = 0,1,..., n

1
N =N −
t

Sinon aller à (**)

Sinon aller à (**)

Aller à (*)

(**) s = s + 1

Q is = Q i pour i = 0,1,..., n − k

Ajustement des tangentes des Q is

Résultat : {Q i j }
j =1,2,...,s
et s : nombre de la courbes de degré (n − k ) .
i =0,...,n -k

Figure III.12 : Courbe de degré 10 réduite en 8 courbes de degré 6 par l’algorithme SUB-BEN [2].

69
Chapitre III Réduction de degré des courbes de Bézier

Figure III.13 : Erreur de position pour la courbe précédente [2].

La figure III.12 représente une courbe de Bézier non rationnelle de degré 10 réduite en 8
courbes de degré 6 par l'algorithme SUB-BEN avec ε 0 = 0.01 . Nous pouvons constater que la
continuité de position sur la figure III.13 est bien respectée grâce à l'ajustement des tangentes.

III.3.3 Méthode de Hoschek

La méthode introduite dans cette partie, est une méthode effective pour la conversion par
approximation des courbes et des surfaces ; dans cette méthode, Hoschek [18] utilise
principalement :
• Transformation du paramètre (paramétrisation/ reparametrization (correction de
paramètre)) [19] ;
• Technique d’optimisation non linéaire.

De cet algorithme découle deux applications :


 Subdiviser une courbe de degré n donnée en une ou plusieurs courbes de degré m < n
(réduction de degré) en respectant une tolérance de position fixée ε 0 .

 Transformer autant que possible une courbe de degré N en une courbe de degré
M > N (élévation de degré) en respectant une tolérance fixée ε 0 .

L’idée essentielle de cet algorithme est d’utiliser la paramétrisation comme nouveau


paramètre: la forme d’une courbe passant par un ensemble de points changera, si on change les
valeurs du paramètre t des points durant le processus d’approximation [2].

70
Chapitre III Réduction de degré des courbes de Bézier

III.3.3.1 Paramétrisation intrinsèque

La paramétrisation intrinsèque développée par Hoschek est l’une des techniques de


minimisation d’une fonction f (b , t ) se plie sous catégorie des techniques de résolution itératives
”alternées”. Ces techniques sont basées sur un principe de relaxation. Elles consistent à partir
d’une première courbe de base à alterner entre une étape de reparamétrisation visant à minimiser
la fonction d’erreur f (b , t ) par rapport aux valeurs de paramètres et une étape de minimisation
aux moindres carrés linéaire visant à minimiser la fonction d’erreur f (b , t ) par rapport aux
points de contrôle [20].

Le but de la paramétrisation est de trouver une bonne répartition des paramètres  sur les
points Pi permettant une approximation optimale d’une courbe.

Soit donné un ensemble ( N + 1) de points Pi (i = 0,..., N ) , La paramétrisation permet

d’affecter un paramètre t i à chaque point Pi L’approximation de ces points par une courbe de
Bézier non rationnelle donne [2] :
n
Pi ≈ Y (ti ) = ∑ bi .Bi ,n (ti ) (ti ∈ [ 0,1] , n < N ) (III-05)
i =0

Avec B i ,n (t ) fonctions de base de Bernstein, et {bi }(i =0,...,n ) le polygone de contrôle de Y (t) ;

L’approximation est optimale si la distance entre les deux de points {Y (ti ), Pi } est

minimisée, le problème se ramène donc à la minimisation suivante :


N
f (b, t ) = Y (ti ) − Pi = ∑ min Y (ti ) − Pi → min
2
2
(III-06)
i =0 ti ∈[ 0,1]

Ce problème de minimisation non linéaire peut être réduit à un processus linéaire en


introduisant l’erreur vectorielle Di La minimisation devient alors

N N
D = ∑ D i =∑ (Pi −Y (t i )) 2 → min (III-07)
i =0 i =0

la méthode des moindres carrés permet d’écrire

∂D
=0 (III-08)
∂b i

71
Chapitre III Réduction de degré des courbes de Bézier

Généralement, cette erreur vectorielle n’est pas orthogonale à l’approximation Y (t ) .La

en les points Pi et leur approximation par la courbe


résolution est linéaire, mais la distance entre

Y (ti ) n’est pas minimisée. Cas de la distance décrite Figure III.14(a).

Figure III.14 : (a) Paramétrisation des points données Pi et l’erreur vectorielle Di . (b) Projection de
l’erreur vectorielle Di

III.3.3.2 Réduction de degré

Si on utilise la paramétrisation comme but principal, on oubliera les conditions entre les
courbes qui sont invariantes pour
pour la paramétrisation. Ces conditions sont très connues sous le
nom de continuité géométrique d’ordre k de deux courbes C (t ) et Q (t ) en point commun entre
les deux [2].

Lors que le modèle étudié pour l’algorithme de réduction de degré est celle de Bézier,
Hoschek pose des équations de Continuité géométrique G k forment pour chaque valeur de
(k = 1, 2,3,...) les conditions de continuité dans le modèle de Bézier (vo
voire [2] pour savoir plus
ces condition).

Algorithme HOS

Input: N : nombre de points de la courbe, Pi (i = 0,..., n) pôles de la courbe, k : ordre de

continuité, ε1 : tolérance imposée

Etape 1. Calcul de µ (longueur de polygone {D j } )

Etape 2. Calcul de paramètres de continuité G k par un algorithme de résolution non


linéaire;

Etape 3. Calcul des points de contrôle Q i (i = 0,.., m )

72
Chapitre III Réduction de degré des courbes de Bézier

Etape 4. Paramétrisation intrinsèque de le courbe résultante de Q i ;

Etape 4. Correction de paramètres de continuité G k en respectant la tolérance ;

Output: Les pôles Q i (i = 0,.., m < n ) qi, une erreur de l’approximation ε1 (variable)

Pour l’algorithme de sub-réduction :

L’algorithme global de subréduction est conditionné par la tolérance de position ε puisque


les autres conditions de continuité sont respectées. La méthode consiste à réduire la courbe
initiale puis vérifier l’écart entre celle ci et la courbe obtenue. Si l’erreur est inférieure à la
tolérance fixée, la procédure s’arrête sinon la courbe sera subdivisée en deux courbes sur
lesquelles le processus s’appliquera [2].

III.3.4 Méthode d’Eck

A l’instar de Farin, Eck (en 1993) a pris en compte le travail de Farin (l’algorithme
proposé au chapitre précédent) pour la réduction de degré en inversant la procédure de
l’élévation de degré, formulant la formule d’interpolation linéaire suivant :

Qi = (1 − λi ).Ri + λi Si ; ou i = 1,..., n − 1 (III-09)

Eck [14] offre un choix différent de λ pour une meilleure degré-réduction (best degree-
reduction) avec le théorème suivant. Avant cela, cependant, nous devons exposer formellement
le problème de la meilleure degré-réduction et définir l'opérateur de différence vers l'avant.

Selon Eck le problème de la meilleure réduction de degré se pose comme suit :

Soit P0 , P1 ,..., Pn un ensemble donné de points de contrôle définissant une courbe de

Bézier Pn (t ) . Alors nous souhaitons trouver les " vrais " points de contrôle Q 0 ,Q1 ,...,Q n −1 qui

définissent la meilleure courbe approximative uniforme de Bézier (à Pn (t ) ) Qn −1 (t ) , en


réduisant au minimum la fonction erreur uniforme

d ( P ,Q ) = max { Pn (t ) − Q n −1 (t ) : t ∈ [ 0,1]} (III-10)

Définition. La nième différence vers l'avant des points de contrôle, ∆ n Pi , est définie [10, 21]:

n
 n
∆ n Pi = ∑  .(−1) n +1.Pi + j (III-11)
j =0  j 

Exemple : ∆ 4 P0 = P0 − 4 P1 + 6 P2 − 4 P3 + P4

73
Chapitre III Réduction de degré des courbes de Bézier

Si ∆ n P0 , alors les termes dans t n décommandent d’omettre une courbe du degré n − 1 , ainsi nous
savoir que la courbe est artificiellement de degré élevé et sera reproduite exactement par
réduction de degré. Ainsi, examinant si ∆ n Pi = 0 est un contrôle simple pour la présence de la
redondance.

Théorème : pour ∆ n P0 ≠ 0 (c'est-à-dire, Pn (t ) n'est pas une courbe artificiellement de degré

élevé contenant la redondance), les points de contrôle Q 0 ,Q1 ,...,Q n −1 fournissent la meilleure

solution au problème de réduction de degré si les facteurs λi sont déterminés par :

n
 2n 
λi = 2(1− 2 n ).∑   ou i = 0,1,..., n − 1 (III-12)
j =0  2 j 

En outre, l'erreur maximale d'approximation est donnée par [2, 10, 21]:

d ( P ,Q ) = 2 (1− 2 n ). ∆ n P0 (III-13)

Pour une preuve de ce théorème, voir [14, 21].

Noter cela :
• la méthode de raffinage d'Eck semble apporter une amélioration définie au-dessus de
celle proposée par Farin.
• Cette méthode n'interpole pas les points d'extrémités de la courbe originale. La
divergence entre les points d'extrémité de Pn (t ) et Q n −1 (t ) est plus prononcée pour une valeur

petite de n (puisque λ0 ≠ 0 et λn −1 ≠ 0 ). Nous pouvons forcer l'interpolation de points finaux,


mais d'autre part nous ne sommes plus assurés une meilleure réduction de degré comme défini
du rapport de problème antérieur. Cependant, Watkins et Worsey [22] arguent du fait que si
l'erreur encourue dans la réduction de degré est ε, alors l'erreur encourue dans la réduction de
degré avec l'interpolation imposée de point final est inférieur ou égal à 2ε [10].

Concernant les deux remarques précédentes, pour maintenir une continuité G 0 , Watkins et
Worsey [20, 22] proposent de changeant le premier et le dernier pôle de Q (t ) pour que
l’interpolation soit valable. Dans notre cas cette correction est tout simplement obtenue en
définissant λ0 = 0 et λn −1 = 0 les autres facteurs sont toujours déterminés par l’équation III-12. Il
est évident que le l’inconvénient est que la propriété de meilleure approximation est perdue.

74
Chapitre III Réduction de degré des courbes de Bézier

Ce problème peut remédier en utilisant les polynômes contraints de Tchebychev T m ,α (t ) .

Ce qui permet de déterminer la meilleure approximation forcée pour une continuité Gα −1 aux
deux extrémités.

Ces polynômes uniques T m ,α (t ) de degré m ayant α solution à t = −1 respectivement à

t = 1 , et sont d’égale oscillation ayant m = 2, α − 1 valeurs extrémales ±1 dans l’intervalle

[ −1,1] qui est une caractéristique de la propriété de la meilleure approximation forcée.


Néanmoins, les formules explicites de T m ,α (t ) pour α ≥ 2 ne sont pas connues à

l’exception de:

 π 
Tm , 0 (t ) = Tm (t ) et Tm , 1 (t ) = Tm  t.cos  (III-14)
 2m 

Donc, ces polynômes doivent être déterminés numériquement par l’intermédiaire de


l’algorithme « Type Remes» [14, 23] qui est une méthode standard du calcul de la meilleure
approximation. Sans entrer dans les détails, on suppose pour la suite que l’expression en terme
de Bernstein est :
m
 t +1
T m ,0 (t ) = ∑ c i , m ,α .B i ,m  , t ∈ [ −1,1] (III-15)
i =0  2 

En calculant numériquement les coefficients D,,E . Ces coefficients obéissent évidemment à:

ci ,m,α = cm−i ,m,α = 0 (i = 0,1,...α ) (III-16)

Donc, puisque T m ,α est d’égale oscillation, les signes des coefficients non nuls sont

alternés, c’est à dire:

ci ,m ,α = (−1) m + i . ci ,m ,α i = α , α + 1,..., m − α (III-17)

Le calcul des nouveaux coefficients précédents ne change pas le principe. Il suffit


simplement de modifier la formule (III-09) par:

Qi = (1 − λi ,n,α ).Ri + λi ,n,α .Si (i = 0,1,..., n − 1) (III-18)

.34
les facteurs FG,.,E H, sont déterminés par:

75
Chapitre III Réduction de degré des courbes de Bézier

0 (i = 0,..., α − 1)

 1 i n
λi,α = λi,n,α = . ∑   . c j ,n ,α (i = α ,..., n − α − 1) (III-
γ
 n ,ε j =α  j 
1 (i = n − α ,..., n − 1)

19)

Où :
n −α
 n
λn,α = ∑   . c j ,n,α (III-20)
j j =α  

De plus, en utilisant le facteur de turbulence sn ,α = 22 n −1 / γ n ,α l’erreur d’approximation est

donnée par : d ( P , Q ) = sn ,α .21− 2 n ∆ n P0 (III-21)

Dans la pratique on ne calcule λi ,n,α et γ n,α qu’une seule fois pour chaque combinaison de

n et α ≥ 1(la solution pour α = 0 est donnée dans l’eq. III-12). Alors les résultats obtenus pour

{λ α } et .,E doivent être enregistrées dans un fichier.


n −1
i,n, i =0

Pour une application, on les rappelle et on calcule les nouveaux coefficients par III-18, [2].

Tableaux 1 [2] : Les facteurs λi ,n ,α pour α = 0,1, 2,3

i α=0 α=1 α=2 α=3


0 0.00003 0 0 0
1 0.00369 0.00287 0 0
2 0.05923 0.05526 0.03609 0
3 0.30362 0.30011 0.28136 0.23083
4 0.69638 0.69989 0.71864 0.76917
5 0.94077 0.94474 0.96391 1
6 0.99631 0.99713 1 1
7 0.99997 1 1 1

Tableaux 2 [2] : quelques facteurs s n ,α :

i α=0 α=1 α=2 α=3


1 1
2 1
3 1 1.5397
4 1 1.3726
5 1 1.2852 4.5795
6 1 1.2313 3.3886
7 1 1.1946 2.7858 15.2332
8 1 1.1680 2.4235 9.8126

76
Chapitre III Réduction de degré des courbes de Bézier

L’algorithme suivant abrège le processus de réduction de degré par la méthode d’Eck.

Algorithme ECK

Input : {Pi }i =0,...,n pôles de la courbes de degré n,k :ordre de la réduction , α ordre de la

continuité ;

m =n

pour i = 0,1,..., n

Q i = Pi

Fin pour

Pour j = 1, 2,..., k

BEN1 (Q ,1 → R )

BEN2 (Q ,1 → S )

Lecteur : (λ0,m ,α )

Pour i = 0,1,..., m -1

Q i = (1- λ0,m ,α )R i + λ0,m ,α S i

Fin pour

m = m -1

Fin pour

Output : {Q i }i =0,...,m pôles de courbe degré m = n - k

Pour la subréduction, L’efficacité de la méthode de réduction de degré n d’une courbe à


degré m<n par l’algorithme « ECK » s’augmente en imposant une tolérance ε sur l’erreur de
position qui doit être minimale. Ainsi que la subdivision nous aide de respecter la tolérance
imposée.

III.4 Conclusion

La conclusion de ce chapitre est une comparaison brève entre les processus


d’approximation précédents. Chacune des méthodes qui nous avons vue ne donne pas la solution

77
Chapitre III Réduction de degré des courbes de Bézier

exacte requise, mais offre une approximation bien en respectant une tolérance spécifique de
position ou sur continuité dans l’algorithme global de réduction (la sub-réduction) pour but de
minimiser les erreurs de l’approximation et de maintenir plus fidèlement les caractéristiques
géométriques d’une courbe initialement de degré élevé  sur son approximation de degré m<n .
Chaque principe d’une méthode de réduction de degré a des avantages et des points faibles par
rapport aux autres méthodes, puisqu’il part des idées mathématiques diffères et obtient des
résultats différents par rapport aux autres d’où l’ordre de réduction, nombre de courbes réduite
en degré " et les erreurs d’approximation. Ainsi que, bien sûr, la nécessité du passage d’une
base Bernstein vers une autre base des polynômes orthogonaux (Legendre, Tchebychev,…) ou
l’inverse et la paramétrisation de points de la courbe initiale qui conduit à des résolutions des
systèmes non linéaires exigent un temps de calcul intéressant au cours de l’implémentation du
processus de réduction de degré.

78
Chapitre IV Application : Génération de trajectoires d’outils

IV.

IV.1 Introduction

Les courbes de Bézier et B-spline offrent plusieurs avantages par rapport aux autres
modèles mathématiques (implicites et explicites). Pour cela, ils sont utilisés dans beaucoup de
domaines, et parmi ces domaines nous citons la C.A.O et C.F.A.O.

Dans ce chapitre, nous allons prendre une application en C.F.A.O sur l’utilisation des
courbes paramétriques « modèle de Bézier ». Le choix de l’application fondé sur l’usinage des
surfaces gauches (complexes). Le problème questionné ici est la génération de trajectoire d’outil,
c.-à.-d un problème de calcul d’intersection surface/surface, la première surface est la surface
gauche à usiner en fraisage à C.N. par contournage (surfaces sculptées [24, 25,26], ou surfaces à
poches [27, 28]) et la deuxième est le plan de coupe. L’idée est basée sur une technique de
subdivision récursive auto-adaptative, opérant sélectivement telle que la discrétisation effective
d’un carreau de surface à usiner n’ait lieu qu’exclusivement au niveau des carreaux de surfaces
où une intersection peut réellement exister. En outre, pour faciliter la procédure de vérification
de l’existence d’intersections, le carreau de surface est assimilé à un plan dont la spécification
géométrique de planéité est utilisée comme critère d’arrêt de la subdivision. Enfin, le calcul
d’intersections «carreau de surface subdivisé / plan de coupe » est ramené à un problème simple
de géométrie plane où les carreaux de surface sont assimilés à des quadrilatères représentés par
leurs pôles respectifs.

IV.2 Traitement des problèmes de calcul d’intersections

Une approche simplifiée proposée dans [29] pour le traitement des problèmes de calcul
d’intersections générées lors de la génération de trajectoires d’outils en fraisage par contournage
de surface de Bézier rationnelles subdivisées, basée sur la technique de planification par courbes
de niveaux ou par plans parallèles. Cette approche s’appuie sur :

- Une technique de subdivision récursive d’après de Casteljau [30] et auto-adaptative, car


opérant telle que la discrétisation effective d’un carreau de surface n’ait lieu qu’exclusivement au
niveau du carreau de surface considéré, où une intersection ‘carreau de surface /plan de coupe’
peut réellement exister; l’opération de subdivision se poursuit alors successivement jusqu’à
satisfaction intégrale d’une tolérance imposée ;

- Une procédure simplifiée pour la vérification de l’existence d’intersections: le carreau de


surface est en effet assimilé à un quadrilatère dont la spécification géométrique de planéité sera
utilisée comme critère d’arrêt de la subdivision, qui est quantifié par le calcul de l’épaisseur du
carreau de surface considéré d’après le modèle de Kim simplifié [31] ;
79
Chapitre IV Application : Génération de trajectoires d’outils

- La résolution d’un problème simple de géométrie plane pour le calcul d’intersections


‘carreau de surface subdivisé /plan de coupe’ : les carreaux de surfaces étant alors assimilés à des
quadrilatères représentés par leurs polygones de contrôles respectifs.

IV.3 Génération de trajectoires d’outils par plans de coupe

En partant d’un carreau de surface de Bézier C (u , t ) , d’un plan de coupe [ P ] et d’une


tolérance de corde Tc , le processus de génération des trajectoires d’outil pour le fraisage par
contournage (par courbes de niveaux ou par plans parallèles) s’effectue selon les quatre étapes
suivantes :

Etape1 :

Discrétisation auto-adaptative de la surface C (u , t ) , c’est-à-dire subdivision du carreau de


surface exclusivement dans les zones où une intersection ‘carreau de surface/plan de coupe’ peut
réellement exister. l’opération de subdivision se poursuit alors continuellement jusqu’à
satisfaction intégrale d’une tolérance prescrite. On obtient ainsi l’ensemble des carreaux de
surfaces ou facettes concernés par l’intersection.

Pour la subdivision récursive d’une surface de Bézier rationnelle aux points de valeurs
paramétriques : u* = 0.5 et t* = 0.5 , on adapte l’algorithme de subdivision des courbes [30]
appliqué à aux (n + 1) polygones dans la direction U au paramètre u * , et aux 2.(m + 1)
polygones dans la direction V au paramètre t * . On obtient ainsi quatre carreaux de surfaces de
même modèle et degré, possédant chacun son propre réseau caractéristique [29].

La mise en œuvre de la méthode de calcul d’intersection par subdivision récursive


nécessite l’introduction d’un critère d’arrêt [31, 32]. Pour simplifier la procédure de vérification
de l’existence d’intersections, nous assimilerons les carreaux de surfaces à un quadrilatère, dont
la spécification géométrique de planéité sera utilisée comme critère que nous avons défini, en
simplifiant (figure 1) le modèle de Kim [31] pour éviter de calculer le point moyen. L’épaisseur
définie par Kim ne représente en fait que la déviation maximale du réseau par rapport à ce point
moyen et non une majoration de l’épaisseur du carreau [29].

80
Chapitre IV Application : Génération de trajectoires d’outils

Figure IV.1 : Epaisseur proposée pour un carreau de surface bi-cubique [29].

L’épaisseur du carreau est alors déterminée par la relation :

( ) ( )
   
ε =  max P0,0 Pi , j .n − min P0,0 Pi , j .n  pour i = 0,..., n ; j = 0,..., m (IV-01)
 

Où n est le vecteur normal unitaire de la surface considérée. Le critère d’arrêt sera donc :

ε ≤ Tc , où Tc est une tolérance de corde prescrite.

Etape 2 :

Approximation de l’intersection par des segments de droites pour obtenir l’ensemble de


segments approximant l’intersection et représentant la courbe d’intersection.

Etape 3 :

Chaînage des segments pour obtenir l’ensemble des contours d’intersection, orientation des
contours

Etape 4 :

Calcul des trajectoires par la technique d’offsetisation des contours d’intersection, et


traitement des boucles et des singularités.

IV.4 Recherche des intersections « carreau de surface/plan de coupe »

Pour un gain d’espace mémoire, la surface initiale ne sera discrétisée au niveau des seules
zone où la possibilité d’intersection avec le plan de coupe peut réellement exister. A cet effet, la
possibilité d’existence d’intersection pour chacun des quatre sous-carreaux résultants de chaque
subdivision sera testé, tel que : « s’il n’existe aucune intersection entre un plan de coupe et le
polygone caractéristique représentant le carreau de surface, alors, il n’existe quasiment aucune
intersection possible entre ce plan et le carreau de surface considéré » [29]. Les carreaux de
surface n’interceptant pas le plan de coupe seront ainsi automatiquement éliminés de la liste

81
Chapitre IV Application : Génération de trajectoires d’outils

chaînée de carreaux interceptant le plan de coupe, tandis que ceux interceptant ce dernier
continueront d’être subdivisés successivement jusqu’au respect total d’une tolérance prescrite.

Le pseudo-code de l’algorithme développé pour la planification des intersections


s’exprimera de l’organigramme suivant :

82
Chapitre IV Application : Génération de trajectoires d’outils

Entrées
{P }
j = 0,..., m
C : Un carreau de surface de Bézier, et ( i , j ) i = 0,..., n son
polygone
[ P] : Plan de coupe
C0 , C1 , C2 , C3 : Carreaux tampons
Début
L1 : Liste chaînée de carreaux interceptant le plan [ P ]
L2 : Liste chaînée tampon de carreaux

Si C
intercepte [ P ]

Oui

Si C Non
conforme Ajouter C à L2

Oui

Tant que :
Ajouter C à L1
Taille L2 ≠ 0

Enlever le carreau en tête


de L 2 et l’affecter à C0

Subdiviser C0 en 4 et affecter les


sous - carreaux à C0 , C1 , C2 , C3

Pour i = 0,...,3

Si Ci
intercepte [ P ]

Oui

Si Ci Non
Ajouter Ci à L2
conforme
Figure IV.2 :
Organigramme descriptif
Oui
du processus de recherche
Ajouter Ci à L1
des intersections.

83
Chapitre IV Application : Génération de trajectoires d’outils

Les figures IV.3 et IV.4 [32] montrent des exemples de facettes issues du processus de
subdivision récursive auto-adaptative de la surface considéré pour différentes tolérances
imposées: les quadrilatères définis chacun par ses pôles P(0, 0), P(0, m), P(n, m), P(n, 0)
respectifs, représentent les facettes ou carreaux de surfaces subdivisés successivement en
fonction des tolérances prescrites. La figure IV.4 représente un agrandissement de la zone
indiquée dans la figure IV.3 à la droite (encadré).

Figure IV.3 : Intersection « carreau surface/plan de coupe » pour des tolérances de 10mm , 1mm et
0.01mm [31].

Figure IV.4 : Agrandissement de l’encadré de la figure 3 [29].

IV.5 Calcul de l’intersection «carreau de surface subdivisée/plan de coupe »

Dans l’approche proposée par [29], le problème de calcul d’intersection « carreau de


surface subdivisée/plan de coupe » se simplifie considérablement et se ramène à un problème
simple de géométrie plane, contrairement aux solutions basées sur les méthodes non linéaires
(ex. méthode de Newton-Raphson), la subdivision récursive ou les méthodes algébriques [30,32].

En effet, on assimile les carreaux de surfaces à des quadrilatères [ Pn,m ] formés par leurs

pôles respectifs P(0, 0), P(0, m), P(n, m), P(n, 0) , tels que les positionnements «
84
Chapitre IV Application : Génération de trajectoires d’outils

quadrilatères/plan de coupe » donnent lieu à un segment d’intersection unique. Les pôles


considérés qui définissent les carreaux de surfaces sont non coplanaires. Par conséquent, parmi
tous les cas d’intersections possibles, seules quatre configurations prédominantes telles que
représentées dans la figure IV.5, peuvent être recensées et retenues. Dans tous les autres cas de
positionnement possibles, nous conclurons à la non-intersection (cas de tangence entre le carreau
et le plan par exemple). En conclusion, on distinguera :
- Configuration 1 (Figure a) : deux points consécutifs du quadrilatère se situent d’un coté par
rapport au plan [P] et les deux autres du coté opposé.
- Configuration 2 (Figure b) : un point du quadrilatère ce situe d’un coté par rapport au plan
[P] et les trois autres points du coté opposé.
- Configuration 3 (Figure c) : deux points non consécutifs du quadrilatère se situent dans le
plan [P] et les deux autres de part et d‘autre.
- Configuration 4 (Figure d) : deux points consécutifs du quadrilatère se situent dans le plan
[P] et les deux autres sont en dehors mais du même coté.

Figure IV.5 : Intersection « plan/carreau de surface subdivisé » (Plan de coupe [P] en trais
pointillés).

L’organigramme ci-dessous explique le processus de calcul d’intersections :

85
Chapitre IV Application : Génération de trajectoires d’outils

Entrées
[ P] : Plan de coupe définit par a, b, c, d , tel que
p ( x, y, z ) ∈ [ P ] ⇒ ax + by + bz + d = 0

p0 , p1 , p2 , p3 : les points consécutifs du quadrilatère considéré

s : Segment d’intersection entre plan de coupe [ P ] et carreau de Début


surface représenté par son « quadrilatère » [ Pn , m ]

Les distances des points p0 , p1 , p2 , p3 au plan [ P ] . Calcul de d 0 , d1 , d 2 , d3

Si d0 > 0, d1 < 0, d 2 < 0, d3 > 0

Configuration= Configuration 1

Si pi , pi +1 situent d’un même coté par Si d0 < 0, d1 < 0, d 2 < 0, d3 > 0

rapport au plan [ P ]
Configuration= Configuration 2

p1s = ( pi .di −1 − pi −1.di ) /(di −1 − di ); Si d0 ≡ 0, d1 < 0, d 2 ≡ 0, d3 > 0


p2 s = ( pi +1.di + 2 − pi + 2 .di +1 ) /(di + 2 − di +1 );

Configuration= Configuration 3
Si pi situent d’un même coté par
rapport au plan [ P ] Si d0 ≡ 0, d1 > tol , d 2 > tol , d3 ≡ 0

p1s = ( pi .di +1 − pi +1.di ) /(di +1 − di ); Configuration= Configuration 4


p2 s = ( pi .di −1 − pi −1.di ) /(di −1 − di );

Si pi , pi + 2 situent dans le plan [ P ]


Détermination de la configuration de
positionnent du quadrilatère en testant
p1s = pi ; successivement les distances
p2 s = pi + 2 ; d0 , d1 , d2 , d3 par rapport au plan [ P ]

Si pi , pi +1 situent dans le plan [ P ]

p1s = pi ;
p2 s = pi +1 ;

Calcul des points p1s et p2 s du segment d’intersection S:

Figure IV.6 : Organigramme explique le processus du calcul des points d’intersection.

86
Chapitre IV Application : Génération de trajectoires d’outils

IV.6 Application à la génération de trajectoires d’outil

Pour la génération de trajectoires d’outils dans le cas particulier des opérations de fraisage
par contournage de surfaces gauches en utilisant la technique des plans de niveaux [30, 31], on
doit s’affranchir des étapes suivantes:
• Recherche de l’ensemble des segments de droites approximant la courbe l’intersection « plan
de coupe/surface à usiner » (figure IV.7)
• Construction et orientation des contours d’intersection par chaînage des segments,
• Calcul et traitement des offsets (élimination des boucles intra et extra -contour, traitement
des singularités,…).

Les figures IV.7, IV.8 ci-dessous illustrent quelques résultats obtenus sur de surface de Bézier
rationnelle, basé sur l’approche proposée par [32].

Figure IV.7 : Courbes (contours) d’intersection déterminées par chaînage des segments d’intersection
issus de la subdivision récursive auto-adaptative, à droite : détail de l’encadré.

Figure IV.8 : Courbes (contours) d’intersection obtenues après chaînage des segments d’intersections
pour deux plans de coupe différents.

87
Chapitre IV Application : Génération de trajectoires d’outils

IV.7 Conclusion

La réalisation des pièces de formes complexes sur une M.O.C.N passe par la génération de
trajectoires dans un logiciel de Fabrication Assistée par Ordinateur (FAO), a une exigence de
modèle géométrique de référence (ex. interpolation, modèle de Bézier, B-spline,…) et autres
choses comme la stratégie d’usinage et des données technologiques. Le fraisage par contournage
proposé dans ce chapitre est une de possibilités de réalisation des surfaces gauches.

Cette application représente un intérêt des courbes de Bézier en vue de la C.F.A.O.

88
Conclusion générale

V. Conclusion générale

Dans ce mémoire, nous avons abordé L’idée générale sur les courbes et les surfaces
paramétriques, spécialement, le modèle de Bézier et B-spline, la transition entre les deux
modèles, et arrêt chez quelques points pour les expliquer plus, nous avons construit des
programmes en MATLAB, sans oublier l’objectif principal de ce travail qui est la réduction de
degré des courbes gauches en vue à l’échange de données entre systèmes C.F.A.O. et se basant
sur une étude bibliographique, nous avons présenté des méthodes de réduction de degré faisant
des approximations raisonnables de façon à surmonter les inconvénients rencontrés dans le
processus de transmission de données entre systèmes de C.F.A.O.

Nous avons découvrit des principales méthodes utilisées pour la réduction de degré.
Actuellement, la démarche de réduction de degré est tendue vers une optimisation de réduction
de degré, c.-à-d le problème est comment rapprocher de façon optimale une courbe paramétrique
donnée par une courbe inférieure de degré dans une certaine limite d'erreur a surgi dans CAGD
[33, 34, 35,…]. Mais les méthodes citées dans ce document restent toujours les bases de
nouvelles méthodes proposées de réduction de degré par approximation des courbes de Bézier.

A la fin de ce document, nous avons présenté un exemple d’application des courbes de


Bézier en F.A.O.

Nous avons présentés une méthode de génération de trajectoires d’outils de coupe


acceptable pour l’intégrer dans un site de production automatisé, l’intérêt étant la possibilité de
disposer d’un système d’assistance à la génération de trajectoires d’outils adaptés à l’usinage des
formes complexes en 3D.

En vu d’amélioration du processus d’optimisation du d’usinage des formes complexes,


nous proposons de faire une recherche combinée en tenant compte des conditions de coupe
surtout avec l’apparition de la nouvelle génération d’outils de coupe.

89
Bibliographie

Bibliographie

[1] G. Thomas, “ Interpolations, Courbes de Bézier et B-Splines ”, Bulletin de la Société des


Enseignants Neuchâtelois de Sciences, 34, Janvier 2008.

[2] A. Farid, “ Réduction de degré par Approximation des Courbes de Bézier Application à
l’Echange de Données entre Systèmes”, Mémoire de Magister, Université Boumerdès-
FSI-DPTMéca-CFAO-, 10-07-1999.

[3] M. Rémy, “Algorithmes pour la Synthèse d’Images et l’Animation 3D”, Dunod, Paris,
ISBN 2 10 049068 0, 2002, 2005.

[4] G. Lionel, “ Mathématiques pour la Modélisation Géométrique, la Représentation 3D et


la Synthèse d’Images”, Ellipses, Paris, ISBN 978-7298-3412-8, 2007.

[5] N. Khoi, “ Surfaces Polyédriques et surfaces Paramétriques : Une Reconstruction par


Approximation via les Surfaces de Subdivision”, Thèse de Doctorat en Informatique,
soutenue le 8 Juillet 2010.

[6] H. Stefanie, “Modélisation Géométrique, Cours ENSIMAG 2e année”. URL http://www-


lmc.imag.fr/lmc-mga/ Stefanie Hahmann.

[7] P. Pierre, “Courbes B-splines”, February 7, 2004.

[8] A. Farid, B. Idir, M. Kamal, I. Guy, C. Mohand Oulhadj, “Algorithmique pour La


conversion par Approximation de Courbes de Bézier de degré élevé : Le modèle de
rationnelle”, UMBB 30 Nov 02 Dec 2004.

[9] T. Riadh , “ Design Géométrique de Surfaces de Topologie Arbitraire ”, Thèse de


Doctorat, 01 octobre 2001.

[10] M. Dave, “Degree Reduction of Bézier Curves’’.

[11] B. Seok-Hyung, S. SHayong, J. Won-Hyung, Byoung K. Choi*, “Parametric-Surface


Adaptive Tessellation Based on Degree Reduction’’, Department of Industrial
Engineering, KAIST, 373-1 Guseong-dong, Yuseong-gu, Daejeon, 305-701, Republic of
Korea; Computers & Graphics 26 (2002) 709–719.

[12] Y.Park and U.J.Chou. “The Error Analysis for Degree Reduction of Bézier Curves’’.
Computers Math. Applic. Vol 27 #12 (1994) 3.

[13] I. Belaidi *, A. Farid*, K. Mohammedi*, G. Ishiomin**, “Echange de Données entres


Systèmes de CFAO : Multi-réduction de Degré des Courbes de Bézier Rationnelles’’, *
GTT-Productique, LMMCBP121 Frantz Fanon, Université de Boumerdes, 35000,
Algérie, ** LMSP, ENSAM Paris, 151 Bd de l’Hôpital, 75013 Paris, 17ème Congrès
Français de Mécanique, Troyes,-Septembre2005

[14] M. Eck, “Degree Reduction of Bézier Curves”. Computer Aided Geometric Design.
Volume 10. (1993), 240.

90
Bibliographie

[15] Isaac J. Schoenberg (1946), C. De Boor (1972-76), M.G. Cox (1972), R. Riesenfeld
(1973), Wolfgang Boehm (1980) ; “B-Splines’’, Conception Assisté par Ordinateur,
Université de Liège.

[16] I. Belaidi*, A. Farid*, G. Ishiomin**, G. Coffignal**, M. Touratier**, “Réduction de


Degré des Courbes de Bézier non Rationnelles et ses Applications Potentielles en
CFAO”, * Laboratoire de CFAO, Département de Génie Mécanique, Faculté des
Sciences de l’Ingénieur, Université de Boumerdès, Avenue de l’indépendance, 35 000
(Algérie) ** Laboratoire LMS-ENSAM CER-Paris, 151 Boulevard de l’Hôpital - 75013
Paris (France), XVème Congrès Français de Mécanique, Nancy, 3 – 7 Septembre 2001.

[17] H. Sunwoo a, N. Lee b, “A Unified Matrix Representation for Degree Reduction of


Bézier Curves”, Computer Aided Geometric Design 21 (2004) 151–164

[18] J. Hoschek, “Exact Approximate Conversion of Spline Curves and Surfaces”,


Computation of Curves and Surfaces, W. Dahmen et al 1990, pp 73-116.

[19] E. Üstünda1 M.S. Çelebi1, “A B-Spline Curve Fitting Approach by Implementing the
Parameter Correction Terms”, 1Computational Science and Engineering, Informatics
Institute, Istanbul Technical University, Maslak 34469 Istanbul, Turkey, e-mail:
ustundag@be.itu.edu.tr, e-mail: mscelebi@itu.edu.tr.

[20] J.C. Chambelland, ”Reconstruction de Surfaces à Pôles pour la Conversion et la


Simplification de Modèles B-Rep”, Thèse de Doctorat (Spécialité Informatique) soutenue
le Mercredi 6 Septembre 2006.

[21] Y. Park, U.J. Choi and H.J Kimn, “Approximate Conversion of Bezier Curves”,
BULL. Austral. Math. SOC. 41A10 Vol. 51 (1995) [153-162].

[22] M.A. Watkins and A.J. Worsey, “Degree Reduction of Bézier Curves”, Computer
Aided Design, Vol 20, N°7 Sept 1988 pp 398-405.

[23] P. Bogacki, E. W. Stanley, and X. Yuesheng. “Degree Reduction of Bezier Curves by


Uniform Approximation with Endpoint Interpolation”. Computer Aided Design, 27(9) :
651–661, 1995.

[24] S. Marshall, J.G. Griffiths, “A Survey of Cutter Path Construction Techniques for
Milling Machines”, International Journal of Production Research, Vol.23, N`12, 1994.

[25] B.K. Choi, et R.B. Jerard, “Sculptured Surface Machining”. kluwer Academic, 1998.

[26] J C.Leon. “ Courbes et Surfaces pour la CFAO”. Hermes Edition, 1991.

[27] S.C. Park and B.K. Choi, “Uncut Free Pocketing Tool-paths Generation Using Pair-
wise Offset Algorithm”, Computer-aided Design , Vol.33, N° 10, pp. 739-746, 2001.

[28] Y.S. Suh, K.lee, “NC Milling Tool Path Generation for Arbitrary Pockets Defined by
Sculptured Surfaces”. Computer-Aided Design, Vol.26, N°3, 1994.

[29] I. Belaidi (1), A. Iloul (2), K. Mohammedi (1), G. Ishiomin (2), “Génération de
Trajectoires d’Outils : Une Approche Simplifiée pour Le calcul des Intersections de
Surfaces Subdivisées”, (1) Groupe CFAO -Productique, LMMC, Université, Boumerdès-

91
Bibliographie

35000 (Algérie), Idirbelaidi@ yahoo.fr (2) LMSP, ENSAM, CER-Paris, 151 Boulevard
de l’Hôpital-75013 Paris (France).

[30] W. Rubio. “Génération de Trajectoires du Centre de l’Outil pour l’Usinage de Surfaces


Complexes sur Machines à Trois et Cinq Axes”. Thèse de Doctorat Université Paul
Sabatier Toulouse N°1638, 1993.

[31] C. Sang, “Park, Tool Path Generation for Z-constaint Coutour Machning”. CAD 35,
pp.27-36, 2003. Eng. Vol26/2, 1994.

[32] I. Belaidi, A. Boumediène, “Génération de Trajectoires d’Outils à Topologie Combinée


pour l’Usinage à Grande Vitesse”, Rapport Interne de Magister, GTT –LMMC, Univ.
Boumerdes, Algérie, 2004.

[33] G.D. Chen, G.J. Wang∗, “Optimal Multi-degree Reduction of Bézier Curves with
Constraints of Endpoints Continuity”, State Key Laboratory of CAD&CG, Institute of
Computer Images and Graphics, Zhejiang University, Hangzhou 310027, China

[34] K. Itsariyawanich, N. Dejdumrong, “Degree Reduction and Multiple Degree Reduction


for the DP Curves”, Department of Computer Engineering, King Mongkut’s University
of Technology Thonburi, Bangkok, 10140, Thailand

[35] L. Lu11, G. Wang, “Optimal Multi-degree Reduction of Bézier Curves with G2-
Continuity”, Institute of Computer Graphics and Image Processing, Department of
Mathematics, Zhejiang University, Hangzhou 310027, China Received 22 November
2005; received in revised form 7 September 2006; accepted 16 September 2006,
Available online 30 October 2006.

92
Annexes

Annexe A

Courbe paramétrique
Les courbes sont créées à partir des points et des lignes. La position d’un point sur une
courbe est donnée par le paramètre t .
Barycentre
Soit O une origine, (n + 1) points Pi affectés des masses mi . Le barycentre des points Pi
affectés des masses mi est le point G défini par :
 n n 
OG. ∑ m = ∑ m .OP
i =0
i
i =0
i i

n   n
On a aussi : ∑ m .GP = 0 où : ∑ m
i =0
i i
i =0
i ≠0

n n
On peut écrire aussi : G.∑ mi = ∑ mi .Pi
i=0 i=0

Dérivée d’ordre I d'une courbe de Bézier :


n
dr n!
dt r
C (t ) = ∑ ∆ r P .B n − r (t )
( n − r )! i = 0 n − r i
La dérivée r ième d’une courbe de Bézier de degré (n) est une courbe de Bézier de degré
(n − r ) .
Théorème de Bézier
La dérivée r ième d’une courbe de Bézier en une de ses extrémités dépend uniquement des r + 1
points de contrôle les plus proches de cette extrémité.
Classes de continuité paramétrique
Une courbe P(t ) est continue paramétriquement de classe C k sur l'intervalle [a, b] si les
dérivées d'ordre 1 à k de P(t ) existent et sont continues sur cet intervalle.

Classe de continuité géométrique G k


Pour le tracé graphique, on est plus préoccupé par la continuité géométrique : absence de
changement de direction du vecteur tangent, mais possibilité de changement discontinu de
valeur de la vitesse.
Une courbe P(t ) est continue géométriquement de classe G k en ti si :
G 0 : P (ti− ) = P (ti+ )
G1 : G 0 et ∃β ∈ ℝ + , P '(ti+ ) = β .P '(ti− )
G 2 : G1 et ∃χ ∈ ℝ + , P ''(ti+ ) = β 2 .P ''(ti− ) + χ .P '(ti− )

i
Annexes

Transformation affine
Soit E d , d = {2,3} , un espace affine ; Une transformation affine f de E d est une application
affine bijective de E d . Les transformations affines sont : Translations, rotations, transformation
d’échelle nommé aussi homothétie (pour plus d’informations voire [2]).

Isoparamétrique
Courbe issue d’un carreau, ayant initialement tous ses points à paramètres constants (t et u )
entre 0 et 1 ; quand t est constant u est variable et l’inverse est correcte. Les paramètres sont
ceux du carreau.

ii
Annexes

Annexe B

Matrice de Bézier
function B=Bern_stein(k)
B=zeros(k+1,k+1);
E=k:-1:0;
for n=k:-1:0;
if n~=0
for r=1:n
p1=[1];
for c=1:n
p1=conv(p1,[-1 1]);
end
end
p1;
s=E(n+1);
p2=Untitl(s);
p=conv(p1,p2);
N=gamma(k+1);
I=gamma(s+1);
NI=gamma((k-s)+1);
b=N/(I*NI);
B(:,s+1)=b*p;
else % Calcule de coeff. de derniere ligne de la matrice
p1=[1];
s=E(n+1);
p2=Untitl(s);
p=conv(p1,p2);
N=gamma(k+1);
I=gamma(s+1);
NI=gamma((k-s)+1);
b=N/(I*NI);
B(:,s+1)=b*p;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function T=Untitl(n); % calcul de t^i
for i=0:1:n
if i==0
T(:,i+1)=1;
else
T(:,i+1)=0;
end
end
Dessin d’une courbe de Bézier par algorithme de De Casteljau
function [abscissex,ordonneey]=Bezier_curve(x,y)
te=linspace(0,1);
temps=length(te);
abscissex=zeros(1,temps);
ordonneey=zeros(1,temps);
degre =length(x)-1
i=1; j=0;
s=zeros(i,1);
for t=linspace(0, 1)
[px,py]=De_Casteljau(x,y,t); %Algorithme de De_Casteljau pour une valeur
de t0
s=zeros(i,1);
j=numel(s);
i=j+1;

iii
Annexes

abscissex(1,j)=px;
ordonneey(1,j)=py;
end
clc
plot(x,y,abscissex,ordonneey) %dessiner la courbe de Bézier avec sa polygone
de contrôle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [abscisse,ordonnee]=De_Casteljau(x,y,t)
n=length(x);
x0=zeros(n,n);
y0=zeros(n,n);
%lire les points de controle P(x,y);
for j=1:1:n
x0(j,1)=x(j);
y0(j,1)=y(j);
end
%iterations barycentrique;
for i=2:1:n+1
for j=1:1:n-i+1
x0(j,i)=(1-t)*x0(j,i-1)+t*x0(j+1,i-1);
y0(j,i)=(1-t)*y0(j,i-1)+t*y0(j+1,i-1);
end
end
abscisse=x0(1,n);
ordonnee=y0(1,n);
Raccord C0 de deux courbes de Bézier
%% raccord C0 de deux courbes de Bézier
clear all; close all;
np1=5;
XP1=zeros(np1,1);YP1=zeros(np1,1);
XP1=[ 0. , 1. , 2. , 3. , 3.5 ] ;
YP1=[ 0. , 2.5 , 3. , 1.5 , 0. ] ;
np2=4;
XP2=zeros(np2,1);YP2=zeros(np2,1);
XP2=[ 3.5, 3. , 5. , 6. ] ;
YP2=[ 0. , -2. , -4. , 0. ] ;
% les courbes de Bézier
T=[0:0.05:1.];
[X1,Y1]=cbezier(T,XP1,YP1);
[X2,Y2]=cbezier(T,XP2,YP2);
nf=1;
figure(nf)
hold on
xmin1=min(XP1);xmax1=max(XP1);
ymin1=min(YP1);ymax1=max(YP1);
xmin2=min(XP2);xmax2=max(XP2);
ymin2=min(YP2);ymax2=max(YP2);
xmin=min(xmin1,xmin2)-0.75;xmax=max(xmax1,xmax2)+0.75;
ymin=min(ymin1,ymin2)-0.75;ymax=max(ymax1,ymax2)+0.75;
axis([xmin,xmax,ymin,ymax]);
plot(X1,Y1,'b',XP1,YP1,'b--')
plot(X2,Y2,'r',XP2,YP2,'r--')
for k=1:np1
kk=k-1;
char=int2str(kk);
P=strcat('P',char);
epsx=0.1;epsy=0.2;
if (k==1) epsx=0.; epsy=-0.2; end
if (k==np1) epsx=0.2; epsy=0.; end
text(XP1(k)+epsx,YP1(k)+epsy,P);
end
for k=1:np2
iv
Annexes

kk=k-1;
char=int2str(kk);
P=strcat('P''',char);
epsx=-0.4;epsy=-.2;
if (k==1) epsx=-0.4; epsy=0.; end
if (k==np2) epsx=0.1; epsy=0.; end
text(XP2(k)+epsx,YP2(k)+epsy,P);
end
% les vecteurs tangents
plot(XP1(np1-1:np1),YP1(np1-1:np1),'b')
plot(XP2(1:2),YP2(1:2),'r')
title('Raccord C0 de deux courbes');
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [X,Y]=cbezier(T,XP,YP);
n=size(T,2); %% n = nombre de points de l'échantillonage
X=zeros(n,1);Y=zeros(n,1);
for k=1:n
t=T(k);
[x,y]=casteljau(t,XP,YP);
X(k)=x;Y(k)=y;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [x,y]=casteljau(t,XP,YP)
m=size(XP,2)-1; %% m = nombre de points de contrôle
xx=XP;yy=YP;
for kk=1:m
xxx=xx;
yyy=yy;
for k=kk:m
xx(k+1)=(1-t)*xxx(k)+t*xxx(k+1);
yy(k+1)=(1-t)*yyy(k)+t*yyy(k+1);
end
end
x=xx(m+1);y=yy(m+1);
Programme de dessin d’une B-spline de degré p
clear % B-spline
T = [0 0 0 0 1 1 2 2 2 2];
X = [0 1 2 2.5 3 4]; Y = [0 3 0 0 3 0];
p = 3;
n = length(T)-1;
t = [T(p+1):0.001:T(n-p+1)-0.001];
for i=0:n-p-1
B(i+1,:) = b(t,T,i,p);
end
plot(X*B,Y*B ,'r',X,Y,'--')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function u = b(t,T,j,p)
i = j+1;
if p==0
u = (t>= T(i) & t < T(i+p+1)); return
end
u = zeros(size(t));
if T(i) ~= T(i+p)
u = u + ((t-T(i)) / (T(i+p) -T(i))) .* b(t,T,j,p-1);
end
if T(i+1) ~= T(i+p+1)
u = u + ((T(i+p+1)-t) ./ (T(i+p+1) -T(i+1))) .* b(t,T,j+1,p-1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Surface de Bézier par algorithme de De Boor - Coox.

v
Annexes

clear all; close all; %% sur_Bezier.m


%np1=4;np2=5;
% définition des points de contrôle
%XP=zeros(np1,np2);YP=zeros(np1,np2);ZP=zeros(np1,np2);
XP=[ 0. , 0. , 0. , 0. , 0. ;
1. , 1. , 1. , 1. , 1. ;
2. , 2. , 2. , 2. , 2. ;
3. , 3. , 3. , 3. , 3. ] ;
YP=[ 0. , 1. , 2. , 3. , 4. ;
0. , 1. , 2. , 3. , 4. ;
0. , 1. , 2. , 3. , 4. ;
0. , 1. , 2. , 3. , 4. ] ;
%% plusieurs choix de ZP
%% Une surface plane
ZP=[ 0. , 0. , 0. , 0. , 0. ;
1. , 1. , 1. , 1. , 1. ;
2. , 2. , 2. , 2. , 2. ;
3. , 3. , 3. , 3. , 3. ] ;
%% Une surface aléatoire
np1=size(XP,1);np2=size(XP,2);
ZP=rand(np1,np2);
%% Une surface cylindrique
for k1=1:np1
for k2=1:np2
d=(XP(k1,k2)-1.)*(XP(k1,k2)-1.);
d=d+(YP(k1,k2)-0.5)*(YP(k1,k2)-0.5);
ZP(k1,k2)=sqrt(d);
end
end
% échantillonage de la surface de Bézier
%
T=[0:0.05:1.];
[X,Y,Z,TRI]=sbezier(T,XP,YP,ZP);
%%
%% le tracé de la surface
%%
nf=1; figure(nf) ; hold on ;
plot3(XP,YP,ZP);
xmin=min(min(XP));xmax=max(max(XP));
ymin=min(min(YP));ymax=max(max(YP));
zmin=min(min(ZP));zmax=max(max(ZP));
dx=0.1;dy=0.1;dz=0.1;
axis([xmin-dx,xmax+dx,ymin-dy,ymax+dy,zmin-dz,zmax+dz]);
ubezier(TRI,X,Y,Z,XP,YP,ZP,'P','k')
xlabel('X')
ylabel('Y')
zlabel('Z')
title('Une surface de Bézier'); hold off ;
rotate3d
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [X,Y,Z,TRI]=sbezier(T,XP,YP,ZP);
n=size(T,2);n1=n-1;n2=n*n;
X=zeros(n2,1);Y=zeros(n2,1);Z=zeros(n2,1);
for k1=1:n
for k2=1:n
t1=T(k1);t2=T(k2);
[x,y,z]=coox(t1,t2,XP,YP,ZP);
k=k1+(k2-1)*n;
X(k)=x;Y(k)=y;Z(k)=z;
end
end
%% les triangles (facettes de la surface)
vi
Annexes

m=n1*n1*2;
TRI=zeros(m,3);
for k1=1:n1
for k2=1:n1
k=k1+(k2-1)*n1;
kk=k1+(k2-1)*n;
%% premier triangle
TRI(2*k-1,1)=kk;
TRI(2*k-1,2)=kk+1;
TRI(2*k-1,3)=kk+1+n;
%% second triangle
TRI(2*k,1)=kk;
TRI(2*k,2)=kk+n;
TRI(2*k,3)=kk+n+1;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [x,y,z]=coox(t1,t2,XP,YP,ZP)
%%
%% Construction d’un point d’une surface de Bézier
%% selon l’algorithme de De Boor - Coox
%%
np1=size(XP,1) ;np2=size(XP,2) ;
xx1=zeros(np1,1) ;yy1=zeros(np1,1) ;zz1=zeros(np1,1) ;
for k1=1:np1
xx2=zeros(np2,1) ;yy2=zeros(np2,1) ;zz2=zeros(np2,1) ;
for k2=1:np2
xx2(k2)=XP(k1,k2) ;yy2(k2)=YP(k1,k2) ;zz2(k2)=ZP(k1,k2) ;
end
[x,y,z]=cast3d(t2,xx2,yy2,zz2) ;
xx1(k1)=x ;yy1(k1)=y ;zz1(k1)=z ;
end
[x,y,z]=cast3d(t1,xx1,yy1,zz1) ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [x1,y1,z1]=cast3d(t,XP,YP,ZP)
m=size(XP,1)-1;
x=XP;y=YP;z=ZP;
for i=1:m
x2=x;y2=y;z2=z;
for k=i:m
x(k+1)=(1-t)*x2(k)+t*x2(k+1);
y(k+1)=(1-t)*y2(k)+t*y2(k+1);
z(k+1)=(1-t)*z2(k)+t*z2(k+1);
end
end
x1=x(m+1);y1=y(m+1);z1=z(m+1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function ubezier(TRI,X,Y,Z,XP,YP,ZP,pchar,color)
tcolor=strcat(color,'--');
% tracé de la surface
trisurf(TRI,X,Y,Z)
% tracé des points
texte=1;
if (texte==1)
np1=size(XP,1);np2=size(XP,2);
for k1=1:np1
kk1=k1-1;
char1=int2str(kk1);
PP=strcat(pchar,char1);
for k2=1:np2
kk2=k2-1;
char2=int2str(kk2);
vii
Annexes

P=strcat(PP,char2);
epsx=0.05;epsy=0.05;;epsz=0.05;
text(XP(k1,k2)+epsx,YP(k1,k2)+epsy,ZP(k1,k2)+epsz,P);
end
end
end
Surface de Bézier par produit matriciel
% function SupBezier(x,y,z)
clear all;
x=[0 0 0 0 0 0;
1 1 1 1 1 1;
2 2 2 2 2 2;
3 3 3 3 3 3;
4 4 4 4 4 4;
5 5 5 5 5 5];
y=[0 1 2 3 4 5;
0 1 2 3 4 5;
0 1 2 3 4 5;
0 1 2 3 4 5;
0 1 2 3 4 5;
0 1 2 3 4 5];
z=[1 2 3 3 2 1;
2 3 4 4 3 2;
3 4 5 5 4 3;
3 4 5 5 4 3;
2 3 4 4 3 2;
1 2 3 3 2 1];
ptos=zeros(size(x,1),size(x,2),3);
ptos(:,:,1)=x;
ptos(:,:,2)=y;
ptos(:,:,3)=z;
[m,n,o]=size(ptos);
for k=1:3
b(:,:,k)=ti(m-1)'*mij(m-1)'*ptos(:,:,k)...
*mij(n-1)*ti(n-1);
end
surf(b(:,:,1),b(:,:,2),b(:,:,3)),
hold on,
mesh(ptos(:,:,1),ptos(:,:,2),ptos(:,:,3)),
xlabel('x')
ylabel('y')
zlabel('z')
hidden off
plot3(ptos(:,:,1),ptos(:,:,2),ptos(:,:,3),'bp')
rotate3d
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function T=ti(n)
m=1;
t=0:0.05:m; % step=0.05
T=[];
for i=0:n
T= [T;t.^i];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function M = mij(n)
for i=0:n
for j=0:n
M(i+1,j+1)=(-1)^(j+i)*binom(n,j)*binom(j,i);
end
end
M=M(1:n+1,1:n+1);
viii
Annexes

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function c=binom(n,i)
if i==n | i==0
c=1;
elseif i<n & i>=0
c = prod ([1:n])/( prod([1:i])*prod([1:n-i]));
else
c=0;
end
Subdivision d’une courbe de Bézier par algirithme de De Casteljau
clear ; %% Subdivision.m
x=[0 1 3 4.6 6];
y=[0 5 5 3 0];
t=0.5; % valeur de paramètre de subdivision t0
[abscisse,ordonnee,x1,y1,x2,y2]=De_Casteljau(x,y,t);
hold on;
[a,b]=Bezier_curve(x,y);
[c,d]=Bezier_curve(x1,y1);
[e,f]=Bezier_curve(x2,y2);
xlabel('abscisse')
ylabel('ordonnée')
title('Subdivision des courbes de Bézier')
hold off
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [abscisse,ordonnee,x1,y1,x2,y2]=De_Casteljau(x,y,t)
n=length(x);
x0=zeros(n,n);
y0=zeros(n,n);
%lire les points de controle P(x,y);
for j=1:1:n
x0(j,1)=x(j);
y0(j,1)=y(j);
end
%iterations barycentrique;
for i=2:1:n+1
for j=1:1:n-i+1
x0(j,i)=(1-t)*x0(j,i-1)+t*x0(j+1,i-1);
y0(j,i)=(1-t)*y0(j,i-1)+t*y0(j+1,i-1);
end
end
x1=x0(1,:);
y1=y0(1,:);
r=0;
for k=1:1:n
c1(1,k)=x0(k,n-r);
c2(1,k)=y0(k,n-r);
r=r+1;
end
x2=c1;
y2=c2;
abscisse=x0(1,n);
ordonnee=y0(1,n);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [abscissex,ordonneey]=Bezier_curve(x,y)
te=linspace(0,1);
temps=length(te);
abscissex=zeros(1,temps);
ordonneey=zeros(1,temps);
degre =length(x)-1
i=1; j=0;
s=zeros(i,1);
for t=linspace(0, 1)
ix
Annexes

[px,py]=De_Casteljau(x,y,t);
s=zeros(i,1);
j=numel(s);
i=j+1;
abscissex(1,j)=px;
ordonneey(1,j)=py;
end
%dessiner la courbe de Bézier avec sa polygone de controle
plot(x,y,abscissex,ordonneey)
Réduction de degré des courbes de Bézier par méthode de Farin
clear; % r_Farin.m
x=[0 2 3 5 7 5 10];
y=[0 6 0 4 1 5 6];
[Rx,Ry]= r_duction (x,y);
[Sx,Sy]=r_ducts(x,y);
n=length(x)-1;
for i=0:1:n-1
if i < n/2
lambda =0;
Qx(i+1)=(1-lambda)*Rx(i+1)+lambda*Sx(i+1);
Qy(i+1)=(1-lambda)*Ry(i+1)+lambda*Sy(i+1);
elseif i > n/2
lambda =1;
Qx(i+1)=(1-lambda)*Rx(i+1)+lambda*Sx(i+1);
Qy(i+1)=(1-lambda)*Ry(i+1)+lambda*Sy(i+1);
else
lambda =1/2;
Qx(i+1)=(1-lambda)*Rx(i+1)+lambda*Sx(i+1);
Qy(i+1)=(1-lambda)*Ry(i+1)+lambda*Sy(i+1);
end
end
Qx=Qx;
Qy=Qy;
Q1=[x;y];
Q=[Qx;Qy];
m =500;
C1= c_bezier (Q1 ,m);
C= c_bezier (Q ,m);
hold on;
plot (C1 (1 ,:) ,C1 (2 ,:) ,'y',Q1 (1 ,:) ,Q1 (2 ,:) ,'.-k',C (1 ,:) ,C (2
,:) ,'r',Q (1 ,:) ,Q (2 ,:) ,'.-')
%plot (C (1 ,:) ,C (2 ,:) ,'r',Q (1 ,:) ,Q (2 ,:) ,'.-')
xlabel ( 'x ','Fontsize' ,14)
ylabel ( 'y ','Fontsize' ,14)
title ( ' reduction _ de _ degré _ de _ courbe _ de _ Bezier _ par _ methode
_ de _ Farine ','Fontsize' ,14)
hold off;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [Rx,Ry]= r_duction (px,py)
n=length(px)-1;
degree=n-1;
Rx(1)=px(1);
Ry(1)=py(1);
for i=1:n-1
Rx(i+1)=n/(n-i)*px(i+1)-i/(n-i)*Rx(i-1+1);
Ry(i+1)=n/(n-i)*py(i+1)-i/(n-i)*Ry(i-1+1);
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [Sx,Sy]=r_ducts(px,py)
qx=px(length(px):-1:1);
qy=py(length(py):-1:1);
[Rx,Ry]= r_duction (qx,qy);
x
Annexes

Sx=Rx(length(Rx):-1:1);
Sy=Ry(length(Ry):-1:1);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function C= c_bezier (pc ,m)
% m points de la courbe a determiner , N=n +1 points de controle
t =0:1/(m -1) :1;
N= length( pc (1 ,:) );
dim = length ( pc (: ,1) );
tt = ones (dim ,1) *t;
for i =1: N
b (1: dim ,1:m ,i)= pc (: ,i)* ones (1 ,m);
end ;
for r =1: N -1
bb =b;
for i =1: N -r
b (: ,: ,i) =(1 - tt ) .* bb (: ,: ,i)+ tt .* bb (: ,: ,i +1) ;
end
end
C=b (: ,: ,1) ;
Réduction de degré par méthode de Forrest
clear
x=[0 2 5 7];
y=[0 5 5.5 0];
[Rx,Ry]= r_duction (x,y);
[Sx,Sy]=r_ducts(x,y);
n=length(x)-1
d= n/2;
d=round(d);
if n==2*d
for i=0:1:((n-2)/2)
Qx(i+1)= Rx(i+1);
Qy(i+1)= Ry(i+1);
end
for i=(n/2):1:n-1
Qx(i+1)= Sx(i+1);
Qy(i+1)= Sy(i+1);
end
else
for i=0:1:((n-1)/2)
Qx(i+1)= Rx(i+1);
Qy(i+1)= Ry(i+1);
end
for i=((n+1)/2):1:n-1
Qx(i+1)= Sx(i+1);
Qy(i+1)= Sy(i+1);
end
Qx((n-1)/2+1)= (Rx((n-1)/2+1)+Sx((n-1)/2+1))/2;
Qy((n-1)/2+1)= (Ry((n-1)/2+1)+Sy((n-1)/2+1))/2;
end
Qx=Qx;
Qy=Qy;
Q1=[x;y];
Q=[Qx;Qy];
m =500;
C1= c_bezier (Q1 ,m);
C= c_bezier (Q ,m);
plot (C1 (1 ,:) ,C1 (2 ,:) ,'y',Q1 (1 ,:) ,Q1 (2 ,:) ,'.-k',C (1 ,:) ,C (2
,:) ,'r',Q (1 ,:) ,Q (2 ,:) ,'.-')
xlabel ( 'x ','Fontsize' ,14)
ylabel ( 'y ','Fontsize' ,14)
title ( ' reduction _ de _ degré _ de _ courbe _ de _ Bezier _ par _ methode
_ de _ Forrest ','Fontsize' ,14)
xi
Résumé

Résumé

Historiquement, la conception géométrique assistée par ordinateur (CGAO) fut l’un des
premiers domaines à utiliser les courbes et surfaces paramétriques pour la modélisation des
objets et la représentation graphique. Dans ce travail, premièrement, nous avons vue un aperçu et
des rappels préliminaires contenant les concepts fondamentaux des courbes et surfaces de
modèle de Bézier et B-splines, deuxièmement, nous avons pris en compte l’objectif principal de
ce travail qui est de dévoiler la boîte noire du problème de réduction de degré des courbes de
Bézier par approximation et, enfin, nous avons présenté une application (usinage des surfaces
complexes) pour évider une des utilisations des courbes de Bézier dans C.F.AO.
Mots clés : courbes et surfaces paramétriques, modèle de Bézier et B-spline, réduction de
degré, approximation, surfaces complexes.

Abstract

Historically, the Computer Aided Geometric Design (CAGD) was one of the first fields to
use the parametric curves and surfaces for modeling the objects and the graphic representation.
In this work, firstly, we saw an outline and preliminary recalls containing the fundamental
concepts of the curves and surfaces of Bézier model and B-splines, secondly, we took into
account the main aim of this work which is to reveal the block box of degree reduction problem
of Bézier curves by approximation and, finally, we presented an application (machining of
complex surfaces) to hollow out one of the uses of Bézier curves in C.F.AO (CADCAM).
Key words: parametric curves and surfaces, Bézier model and B-spline, degree reduction,
approximation, complex surfaces.



 
‫
 ب آ ن  أوا  ت ا ام ا ت و اح ا‬#‫ ا‬$%‫* ر( ا '& ا‬
‫ ت و‬1  2‫
 ' & ا‬1 3 ‫ات‬.‫ أو رأ(  و *آ‬،#‫ ها ا‬$6 .$+ ,‫ و ا   ا‬-‫ا‬./‫ا ت ا‬
,1#‫ اي ه ا ;ع ا‬#‫  ها ا‬$ 2‫ف ا‬%‫ ر ا‬, >‫ ا‬#
+?‫ أ‬+ 9 ، B-splines‫ و‬Bézier ‫ذج‬+  ‫اح‬
K‫ أ‬LM  (‫ة‬E#‫ اح ا‬I'*) E,* F ( %‫ ا‬$6‫ و‬،
‫ ر‬E
Bézier ‫ در  ت‬A/* BC ‫اداء‬
.‫(
 ب‬#‫  ل ا '& وا' > ا‬$6 Bézier ‫ ت  ت‬# ‫ا‬

‫ اح‬،
‫ ر‬E‫ ا‬،‫ در‬A/* ، B-splines‫ و‬Bézier ‫ذج‬+ ،
‫ ا ت و اح ا‬:K /‫ ت ا‬1B‫ا‬
.‫ة‬E#‫ا‬

Vous aimerez peut-être aussi