HAL Id: hal-01224893
https://hal.archives-ouvertes.fr/hal-01224893
Submitted on 25 Nov 2015
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires
Approcher des courbes par des hélices
Florence Bertails-Descoubes, Alexandre Derouet-Jourdan
To cite this version:
Florence Bertails-Descoubes, Alexandre Derouet-Jourdan. Approcher des courbes par des hélices.
Quadrature, EDP Sciences, 2015. �hal-01224893�
Approcher des courbes par des h´elices
Florence Bertails-Descoubes ∗ et Alexandre Derouet-Jourdan
INRIA et Laboratoire Jean Kuntzman, Grenoble, France
Paru dans Quadrature, avril 2015
R´ esum´ e
La forme ´elanc´ee des structures fibreuses - telles que les cheveux, les brins d’ADN ou encore les tiges de plantes - peut se repr´esenter
`
a l’aide de courbes de l’espace. En particulier, les courbes en h´elices par morceaux offrent une repr´esentation int´eressante pour mod´eliser num´eriquement de telles donn´ees, car elle s’av`ere tr`es compacte : 2 nombres (une courbure et une torsion) suffisent ` a caract´eriser un mor- ceau d’h´elice circulaire. Dans cet article, nous pr´esentons une m´ethode
`
a la fois pr´ecise et rapide pour approcher une courbe quelconque de l’espace par une courbe lisse en h´elices par morceaux.
1 Des h´ elices dans notre quotidien
Il est assez ´ etonnant de constater ` a quel point les structures filiformes, c’est-` a-dire les objets longs et tr` es fins, font partie de notre environnement quotidien : les exemples biologiques naturels (branches d’arbre, brins d’herbe, cheveux, etc.) rivalisent en nombre avec les objets issus de l’industrie (fibres optiques, cordons de t´ el´ ephone, cˆ ables d’ordinateur, etc.). Et l’on a beau zoo- mer et d´ ezoomer notre angle de vue, on retrouve encore ces mˆ emes structures longilignes ou fibreuses, aussi bien en descendant dans les petites ´ echelles (fibres musculaires du cœur, nano-tubes de carbone, prot´ eines ou encore ADN) qu’en remontant vers les grandes ´ echelles (structure chevelue du champ
∗
[email protected]
magn´ etique d’une ´ etoile, filaments galactiques). Par ailleurs, quelle que soit l’´ echelle consid´ er´ ee, on peut remarquer la tendance spontan´ ee qu’ont la plu- part de ces structures ` a s’enrouler, s’enchevˆ etrer ou se vriller, pour dessi- ner des formes tridimensionnelles des plus ´ el´ ementaires, mais aussi des plus esth´ etiques : des h´ elices. La double h´ elice de l’ADN, bien sˆ ur. Mais aussi les cheveux ondul´ es ou boucl´ es, les vrilles de vigne entortill´ ees, les cordons t´ el´ ephoniques spiral´ es, ou encore les tornades et courants h´ elico¨ıdaux dans les rivi` eres. Quelques exemples de formes h´ elico¨ıdales r´ eelles sont pr´ esent´ es en Figure 1.
Figure 1 – Exemples d’h´ elices r´ eelles. De gauche ` a droite : vrille de vigne - c J. Sullivan, pdphoto.org, m` eche de cheveux boucl´ es - c F. Bertails- Descoubes, et sculpture de Charles Jencks aux Kew Gardens de Londres, repr´ esentant la double h´ elice de l’ADN - c J.-P. Truc.
2 Acquisition et traitement num´ erique
Si les artistes c´ el` ebrent par la peinture ou la sculpture la grˆ ace des objets
filiformes et h´ elico¨ıdaux depuis l’antiquit´ e, les scientifiques - non moins sen-
sibles ` a cette grˆ ace - cherchent davantage ` a observer, analyser et mod´ eliser
math´ ematiquement ces structures pour en comprendre l’origine et en pr´ edire
la formation. Pour saisir la structure des objets ´ etudi´ es, ` a deux ou trois
dimensions, de nombreuses techniques d’acquisition ont ´ et´ e d´ evelopp´ ees au
cours des soixante derni` eres ann´ ees, depuis la cristallographie r´ ev´ elant la
structure h´ elico¨ıdale de l’ADN jusqu’` a l’IRM mettant en lumi` ere la struc- ture fibreuse de la mati` ere blanche du cerveau, en passant par la capture multi-cam´ eras sous lumi` ere contrˆ ol´ ee permettant d’acqu´ erir pr´ ecis´ ement la g´ eom´ etrie d’une chevelure humaine r´ eelle. Ainsi, aujourd’hui, un grand nombre de donn´ ees complexes sous forme d’images ou de g´ eom´ etrie brute (comme des nuages de points) sont disponibles dans tous les champs de la science, no- tamment en biologie, m´ edecine, astrophysique, ou en informatique de l’image (vision par ordinateur, informatique graphique). Un traitement num´ erique est alors indispensable afin de trier, de simplifier, d’analyser, et de comprendre ces donn´ ees.
La mod´ elisation g´ eom´ etrique est l’une des ´ etapes importantes de l’in- terpr´ etation des donn´ ees d’entr´ ee : elle consiste ` a repr´ esenter les structures observ´ ees par des primitives g´ eom´ etriques ´ el´ ementaires (comme des courbes ou des surfaces param´ etr´ ees) et permet ainsi de simplifier et de rationa- liser les formes de la vie r´ eelle. Dans notre cas, o` u nous nous int´ eressons
`
a des structures filiformes plus ou moins boucl´ ees, ce sont les courbes, et plus pr´ ecis´ ement les courbes constitu´ ees d’h´ elices, qui apparaissent parti- culi` erement pertinentes pour repr´ esenter nos donn´ ees d’entr´ ee. Nous allons alors nous int´ eresser au probl` eme suivant : comment approcher une courbe quelconque de l’espace par une courbe en h´ elices par morceaux ?
3 Approximation en h´ elices par morceaux
Voil` a donc notre probl` eme. En entr´ ee, nous consid´ ererons une courbe spa- tiale, aussi tordue que l’on veut. Cette courbe pourra provenir d’un travail de mod´ elisation g´ eom´ etrique pr´ ealable (par exemple, sculpture virtuelle de cheveux par un artiste), ou au contraire ˆ etre issue d’une capture automa- tique sur un sujet r´ eel (par exemple, capture et reconstruction 3d d’une fibre
`
a partir de photographies). Le format d’entr´ ee n’aura que peu d’importance :
il pourra s’agir d’une s´ equence de points 3D, ou d’une spline, ou autre. Par
contre nous consid´ ererons que l’information est compl` ete (pas de trou dans
les donn´ ees) et exacte (pas de bruit dans les donn´ ees). En sortie, notre ob-
jectif sera de g´ en´ erer une courbe en h´ elice par morceaux. Par h´ elice, nous
entendrons en fait “h´ elice circulaire”, c’est-` a-dire une h´ elice ` a base circu-
laire et ` a pas constant (voir Figure 2). Nous nous imposerons une contrainte
suppl´ ementaire : les arcs d’h´ elice devront se recoller de mani` ere lisse, c’est ` a
dire de telle sorte que les tangentes co¨ıncident aux points de jonction.
x
y z
Figure 2 – H´ elice circulaire ` a pas constant. Ici son axe est l’axe z. Projet´ e dans le plan (xy), l’h´ elice d´ ecrit un cercle (repr´ esent´ e par une ligne discon- tinue).
Ainsi, notre d´ emarche est celle d’une approximation (ou conversion) g´ eom´ e- trique, dans le sens o` u nous cherchons ` a faire co¨ıncider “au mieux” des arcs d’h´ elices avec la courbe d’entr´ ee.
4 Nombre minimal de morceaux ou erreur maximale ?
Dans un probl` eme d’approximation g´ eom´ etrique, o` u l’on approche une donn´ ee d’entr´ ee (ici, une courbe de l’espace) par un nombre fini de primitives g´ eom´ etriques ´ el´ ementaires (ici, des arcs d’h´ elice circulaire), il est l´ egitime de se poser la question suivante : souhaite-t-on contrˆ oler le nombre de morceaux de primitives que l’on utilise pour approcher au mieux la donn´ ee d’entr´ ee, ou bien l’erreur d’approximation commise ? ´ Evidemment, ces deux quan- tit´ es sont totalement inter-d´ ependantes, et le minimum que l’on puisse exi- ger d’une bonne m´ ethode d’approximation est que l’erreur d’approximation soit une fonction strictement d´ ecroissante du nombre de primitives utilis´ ees.
Autrement dit, plus l’on utilise un nombre ´ elev´ e de primitives, plus l’on se
doit d’ˆ etre pr´ ecis. Dans le cas o` u l’on souhaite garantir une erreur d’ap-
proximation minimale entre la forme d’entr´ ee et la forme approch´ ee, il est souhaitable de pouvoir contrˆ oler directement l’erreur caus´ ee par la m´ ethode d’approximation, sans se pr´ eoccuper du nombre de primitives qu’il est alors n´ ecessaire d’utiliser pour atteindre la pr´ ecision requise (quitte ` a avoir besoin d’un nombre gigantesque de primitives). ` A l’inverse, si l’on consid` ere que l’utilisation d’une primitive a un coˆ ut (par exemple, un coˆ ut en m´ emoire de stockage), il est sans doute pr´ ef´ erable de contrˆ oler directement le nombre de primitives employ´ ees, et en fonction de la quantit´ e de ressources que l’on veut bien s’accorder, tˆ acher d’approcher au mieux la forme d’entr´ ee (quitte
`
a rester tr` es loin de la forme d’entr´ ee, faute d’un nombre suffisant de res- sources). Ce choix du param` etre que l’on laisse ` a l’utilisateur est important car il conditionne la fa¸con dont on va construire l’algorithme d’approxima- tion, c’est-` a-dire la m´ ethode pour calculer automatiquement une approxima- tion de la courbe d’entr´ ee en une h´ elice par morceaux.
Dans cet article nous opterons pour la seconde strat´ egie. Plus pr´ ecis´ ement, notre algorithme d’approximation prendra comme param` etre d’entr´ ee le nom- bre N d’arcs d’h´ elice souhait´ es, et produira en sortie une courbe C
1constitu´ ee de N arcs d’h´ elice de longueur ´ egale, approchant la courbe d’entr´ ee avec une erreur correspondant ` a une certaine notion de distance (que nous pr´ eciserons plus tard) entre la courbe d’origine et la courbe approch´ ee.
Pour simplifier, nous commencerons par d´ ecouper la courbe d’entr´ ee en
N morceaux de longueur ´ egale. Nous appellerons points de jonction et no-
terons p
iles N + 1 points de la courbe localis´ es ` a l’endroit de d´ ecoupe. En
chaque point p
i, nous supposerons qu’il est possible de calculer ou d’estimer
pr´ ecis´ ement la tangente ` a la courbe, not´ ee t
i. Une question naturelle qui se
pose est alors la suivante : ´ etant donn´ es deux points successifs p
iet p
i+1ainsi
que leurs tangentes respectives t
iet t
i+1, est-il possible de construire un arc
d’h´ elice interpolant les deux points et les deux tangentes ? Y a-t-il toujours
existence d’une telle h´ elice interpolante, ou uniquement dans certains cas ?
Comment la construire en pratique ? Si une telle h´ elice existe dans une confi-
guration donn´ ee, est-elle unique ? Aussi ´ el´ ementaires qu’elles y paraissent,
ces questions semblent n’avoir ´ et´ e abord´ ees en r´ ealit´ e que tr` es r´ ecemment.
5 Interpolation et h´ elices : un probl` eme peu ´ etudi´ e ?
Les questions d’interpolation pour les courbes et les surfaces se posent naturellement dans le domaine de la conception assist´ ee par ordinateur – domaine qui a ´ emerg´ e dans les ann´ ees 60 avec la conception informatique de mod` eles pour l’industrie automobile notamment – o` u l’on souhaite cr´ eer des formes respectant certaines contraintes impos´ ees : par exemple, un cˆ able doit relier un point A ` a un point B, ou bien la surface d’un mod` ele de car- rosserie de voiture doit ˆ etre suffisamment ”lisse” pour refl´ eter la lumi` ere de mani` ere esth´ etique, etc. Ces questions interviennent aussi dans d’autres champs comme la physique ou la biologie, o` u les formes g´ eom´ etriques ´ el´ emen- taires (cercles, ellipses, h´ elices) sont r´ epandues et pour lesquelles on a besoin de comprendre la nature de leur formation ou de leur d´ eformation dans le temps, en fonction des contraintes internes ou externes qui leur sont im- pos´ ees. L’´ etude de l’existence et la caract´ erisation de ces formes ´ el´ ementaires soumises ` a diff´ erents types de contraintes requi` erent en g´ en´ eral l’usage d’ou- tils math´ ematiques classiques : ces questions n’int´ eressent donc que rarement les math´ ematiciens modernes, qui s’att` elent davantage ` a d´ evelopper de nou- velles th´ eories complexes. Pourtant, ces probl` emes g´ eom´ etriques d’apparence simple sont loin d’ˆ etre triviaux. Et encore une fois, ils trouvent bon nombre d’applications dans tout un champ de disciplines : conception par ordinateur, informatique graphique, mod´ elisation en physique et en biologie. Il n’est ainsi pas rare de voir apparaˆıtre de temps en temps, en provenance d’informati- ciens, de physiciens, de biologistes, ou de math´ ematiciens dits “appliqu´ es”, de nouveaux petits th´ eor` emes qu’on aurait pu croire d´ emontr´ es depuis l’an- tiquit´ e, tant leur ´ enonc´ e est simple (mais en math´ ematique, il faut toujours se m´ efier d’un ´ enonc´ e trop simple).
6 A deux dimensions, le cas facile `
Pour y voir plus clair, regardons tout d’abord le cas ` a deux dimensions.
L’analogue d’un arc d’h´ elice circulaire (caract´ eris´ e par des courbure et torsion
constantes) dans le plan est l’arc de cercle (caract´ eris´ e par une courbure
constante). Notre probl` eme d’interpolation initial revient ainsi ` a ´ etudier les
conditions d’existence et d’unicit´ e d’un arc de cercle orient´ e interpolant deux
points p
0, p
1et deux vecteurs tangents t
0, t
1. Ces conditions seront par la
suite appel´ ees conditions de co-circularit´ e pour p
0, p
1, t
0, et t
1.
Pla¸cons-nous tout d’abord dans un cas encore plus simple et moins con- traint, en omettant le second vecteur tangent t
1. Comment construire un arc de cercle partant de p
0avec comme vecteur tangent t
0, et passant par p
1? Nous voyons rapidement qu’un tel arc orient´ e existe : il s’obtient en construisant le centre du cercle interpolant comme point d’intersection entre la m´ ediatrice du segment [p
0,p
1] et la droite perpendiculaire ` a t
0, comme indiqu´ e sur la Figure 3.
p 0 p 1
t 0
O
Figure 3 – Construction de l’arc de cercle orient´ e joignant p
0` a p
1et ayant t
0pour vecteur tangent en p
0.
D’apr` es la contrainte d’interpolation du vecteur tangent t
0au point p
0, l’arc que l’on recherche est en r´ ealit´ e orient´ e. De plus, si l’on se limite ` a un arc court, c’est-` a-dire ne faisant pas un tour complet, l’arc interpolant p
0, t
0et p
1est unique.
Consid´ erons maintenant la contrainte que nous avions laiss´ ee de cˆ ot´ e, ` a
savoir l’interpolation du vecteur tangent t
1au point p
1. Evidemment, vu ce
que nous venons d’´ etablir pr´ ec´ edemment, cette nouvelle contrainte ne peut
pas ˆ etre satisfaite dans le cas g´ en´ eral : le vecteur tangent t
1ne peut pas ˆ etre
fix´ e de mani` ere arbitraire si l’on veut pouvoir l’interpoler.
Dans le cas g´ en´ eral, on peut en fait formuler le petit th´ eor` eme suivant qui donne un crit` ere simple pour caract´ eriser la co-circularit´ e de deux points et deux vecteurs tangents :
Soient deux points p
0et p
1de R
2tels que p
06= p
1, et deux vecteurs unitaires t
0et t
1de R
2tels que t
16= ±t
0. Il existe un unique arc de cercle (orient´ e) court reliant p
0` a p
1et admettant t
0et t
1comme vecteurs tangents en p
0et p
1, respectivement, si et seulement si
hp
1− p
0, t
1− t
0i = 0 (1) ou, en d’autres termes, si et seulement si le vecteur p
1− p
0appartient ` a la droite orthogonale au vecteur t
1− t
0.
p 0 p 1
t 0
t 1 p 0 0
p 00 0 β 0
β 1
1 Figure 4 – Les points p
0et p
1munis des tangentes t
0et t
1satisfont la condition d’orthogonalit´ e lorsque la droite reliant p
0et p
1est orthogonale ` a la droite (p
00, p
000) de vecteur directeur t
1− t
0.
Comment peut-on exprimer ce r´ esultat de mani` ere g´ eom´ etrique ? Consid´ e-
rons p
00l’image de p
0par la translation de vecteur t
0et p
000l’image de p
0par
la translation de vecteur t
1(voir Figure 4). Alors la condition d’orthogonalit´ e
signifie que les deux points p
0et p
1forment une droite perpendiculaire au
segment [p
00p
000]. Comme les deux tangentes sont unitaires, elles ont mˆ eme
norme, et donc le triangle (p
0p
00p
000) est isoc` ele. Ainsi, la condition d’ortho- gonalit´ e revient ` a dire que p
1est sur la bissectrice issue de p
0dans le triangle (p
0p
00p
000), ce qui ´ equivaut ` a β
0= β
1.
Nous pouvons maintenant d´ emontrer le th´ eor` eme. Supposons dans un premier temps qu’il existe un arc court (orient´ e) reliant p
0` a p
1et admettant t
0et t
1comme vecteurs tangents en p
0et p
1, respectivement. En reprenant les notations pr´ ec´ edentes, montrons que p
1est sur la bissectrice issue de p
0dans le triangle (p
0p
00p
000) (voir Figure 5), ce qui est ´ equivalent ` a montrer que la condition (1) est v´ erifi´ ee.
p 0 p 1
t 0
t 1 p 0 0
p 00 0 β 0
β 1
α 0 α 1
O
1
Figure 5 – On d´ emontre que p
1est sur la bissectrice issue de p
0dans le triangle (p
0p
00p
000) en montrant l’´ egalit´ e des angles β
0et β
1.
Notons O le centre du cercle interpolant. Alors le triangle (O p
1p
0) est isoc` ele d’o` u α
0= α
1. Or par construction, α
0+ β
0=
π2et α
1+
π2+ β
1= π d’o` u nous d´ eduisons imm´ ediatement β
0= β
1et p
1est sur la bissectrice issue de p
0dans le triangle (p
0p
00p
000).
R´ eciproquement, si la condition (1) est v´ erifi´ ee, i.e., si β
0= β
1, tra¸cons la droite passant par p
0et perpendiculaire ` a t
0ainsi que celle passant par p
1et perpendiculaire ` a t
1. Ces deux droites s’intersectent en un point O.
Montrons que le triangle (O p
1p
0) est isoc` ele. Comme pr´ ec´ edemment, par
construction, α
0+ β
0=
π2et α
1+
π2+ β
1= π et comme β
0= β
1, on a
α
0= α
1et le triangle est isoc` ele. L’arc de cercle de centre O qui part de p
0avec la tangente t
0atteint donc le point p
1avec la tangente t
1. L’unicit´ e de
l’arc d´ ecoule du fait que l’arc est n´ ecessairement orient´ e (car il interpole des
vecteurs tangents, donc respecte un sens de rotation), et court (il ne fait pas de tour complet)
1.
Notons que la d´ emonstration pr´ ec´ edente a le grand int´ erˆ et d’ˆ etre construc- tive : lorsque les conditions de co-circularit´ e sont v´ erifi´ ees, elle fournit une m´ ethode pour construire l’unique arc de cercle interpolant (` a partir du calcul du centre du cercle O). Id´ ealement, nous souhaiterions avoir le mˆ eme genre de caract´ erisation simple pour la co-h´ elicit´ e en 3D, ainsi qu’une m´ ethode syst´ ematique de construction en 3D de la ou des h´ elices interpolantes.
7 Et ` a trois dimensions ?
De mani` ere remarquable, le th´ eor` eme pr´ ec´ edent ainsi que sa d´ emonstration constructive se g´ en´ eralisent parfaitement ` a la 3D. On peut en effet formuler le th´ eor` eme suivant pour caract´ eriser la co-h´ elicit´ e de deux points et deux vecteurs tangents :
Soient deux points p
0et p
1de R
3tels que p
06= p
1, et deux vecteurs unitaires t
0et t
1de R
3tels que t
16= ±t
0. Il existe une unique h´ elice courte reliant p
0` a p
1et admettant t
0et t
1comme vecteurs tangents en p
0et p
1, respectivement, si et seulement si
hp
1− p
0, t
1− t
0i = 0. (2) ou, en d’autres termes, si et seulement si le vecteur p
1− p
0appartient au plan orthogonal au vecteur t
1− t
0.
Ce joli th´ eor` eme, surprenant de simplicit´ e, semble avoir ´ et´ e formul´ e pour la premi` ere fois par Ghosh en 2010 dans sa th` ese de doctorat [4]. Cepen- dant, contrairement ` a la 2D, en 3D la d´ emontration de ce th´ eor` eme n’est pas si simple. Dans sa th` ese, Ghosh fournit une d´ emonstration analytique du th´ eor` eme, peu difficile d’acc` es mais p´ enible car calculatoire, et surtout incompl` ete : la condition suffisante du th´ eor` eme n’est que partiellement d´ emontr´ ee. En allant jusqu’au bout du raisonnement et des calculs, on peut cependant d´ emontrer le th´ eor` eme dans son int´ egralit´ e [2]. La d´ emonstration compl` ete est longue (une vingtaine de pages), et il existe certainement une d´ emonstration plus courte s’appuyant sur des outils de g´ eom´ etrie diff´ erentielle.
N´ eanmoins, l’int´ erˆ et de cette d´ emonstration analytique (et c’´ etait aussi le but poursuivi par Ghosh), est de fournir une m´ ethode syst´ ematique pour
1. Exercice : Que se passe-t-il dans le cas o` u t
0et t
1sont colin´eaires ?
construire l’unique h´ elice courte interpolante, une fois les points et tangentes plac´ es selon la configuration favorable. Comme en 2D, la d´ emonstration du th´ eor` eme est dite constructive, ce qui pr´ esente un int´ erˆ et pratique ´ evident.
8 Relaxation des points
Revenons ` a notre probl` eme d’approximation initial. Nous avons vu que dans le cas g´ en´ eral il est impossible d’interpoler deux points et deux tan- gentes par un arc de cercle ou une h´ elice. Il faut pour cela qu’ils satisfassent la condition de co-circularit´ e ou de co-h´ elicit´ e ´ enonc´ ee pr´ ec´ edemment. Dans le cas o` u nous souhaitons interpoler des points et des tangentes pris sur une courbe donn´ ee en entr´ ee, il est donc n´ ecessaire de relˆ acher une contrainte pour rendre l’interpolation possible. Notre intuition est que si l’interpola- tion des vecteurs tangents est importante afin de pr´ eserver l’allure g´ en´ erale de la courbe d’entr´ ee, une interpolation stricte des points n’est pas indis- pensable : nous choisissons donc de relˆ acher la position des points. Nous interpolerons ainsi des tangentes ”flottantes”, c’est-` a-dire non fix´ ees ` a des points pr´ ed´ etermin´ es. Bien entendu, nous ne souhaitons pas que les points s’´ ecartent trop de leur position d’origine. C’est la raison pour laquelle nous imposons de minimiser le d´ eplacement de ces points. Consid´ erons le cas de deux points p
0et p
1ainsi que deux tangentes t
0et t
1que nous prendrons uni- taires et non colin´ eaires. Notons p
00et p
01les nouveaux points obtenus apr` es d´ eplacement. Nous pouvons alors formuler notre probl` eme d’approximation de la fa¸con suivante,
min kp
00− p
0k
2+ kp
01− p
1k
2(p
00, p
01) t.q. (p
00, t
0) et (p
01, t
1) sont co-h´ elicaux.
En d’autres termes, nous recherchons les points p
00et p
01tels qu’il existe une h´ elice passant par p
00avec la tangente t
0et p
01avec la tangente t
1(condi- tion (p
00, t
0) et (p
01, t
1) co-h´ elicaux) et qui minimisent le d´ eplacement par rapport ` a p
0et p
1(min kp
00− p
0k
2+ kp
01− p
1k
2). R´ esoudre ce probl` eme de minimisation ne semble pas chose ais´ ee au premier abord. Mais en rem- pla¸cant la condition de co-h´ elicit´ e par son ´ equivalent (2), nous obtenons un probl` eme plus simple,
min kp
00− p
0k
2+ kp
01− p
1k
2(p
00, p
01) t.q. hp
1− p
0, t
1− t
0i = 0.
Dans le cas planaire, la condition de co-h´ elicit´ e signifie que les deux points sont sur la droite vectorielle orthogonale ` a la diff´ erence des deux tangentes et dans le cas spatial, elle signifie que les deux points sont dans le plan vectoriel orthogonal ` a la diff´ erence des deux tangentes. Consid´ erons le cas le plus g´ en´ eral de l’espace. Notons (u, v) une base du plan vectoriel orthogonal ` a la diff´ erence des deux tangentes
2. D` es lors, nous pouvons ´ ecrire que la condition de co-h´ elicit´ e est ´ equivalente ` a l’existence de deux scalaires α et β tels que
p
01= p
00+ αu + βv.
Nous pouvons alors transformer notre probl` eme en un probl` eme plus simple encore,
min kp
00− p
0k
2+ kp
01− p
1k
2(p
00, p
01) t.q. p
01= p
00+ αu + βv.
Puis nous pouvons injecter la contrainte de co-h´ elicit´ e directement dans la fonction objectif du probl` eme de minimisation et nous obtenons enfin le probl` eme suivant,
min kp
00− p
0k
2+ kp
00+ αu + βv − p
1k
2. (p
00, α, β)
On identifie tr` es facilement ici un probl` eme classique de moindres carr´ es lin´ eaires dont la solution unique est donn´ ee par la simple r´ esolution d’un syst´ eme lin´ eaire !
9 R´ ecapitulation : algorithme des tangentes flottantes
Notre algorithme d’approximation, appel´ e “algorithme des tangentes flot- tantes”, fonctionne en 3 ´ etapes illustr´ ees sur la Figure 6 ci-dessous.
En entr´ ee, consid´ erons une courbe r´ eguli` ere, ` a gauche sur la figure (sur l’illustration la courbe est planaire mais l’algorithme reste le mˆ eme dans le cas de courbes spatiales).
1) Prenons des points avec leurs tangentes respectives r´ eguli` erement es- pac´ es sur la courbe ` a approcher. Puisque nous voulons N morceaux, consid´ e- rons N + 1 points, comme repr´ esent´ e deuxi` eme colonne de gauche sur la figure.
2. Exercice : comment construire facilement une telle base, en consid´erant les deux
tangentes comme unitaires et non-colin´eaires ?
Figure 6 – Algorithme des tangentes flottantes.
2) Puisque dans le cas g´ en´ eral il est impossible d’interpoler deux points successifs avec leurs tangentes par un unique arc de cercle ou d’h´ elice, relˆ a- chons la position de ces points de sorte que l’on puisse les interpoler, troisi` eme colonne sur la figure. Cette relaxation revient ` a d´ eplacer les points pour satisfaire la condition de co-circularit´ e ou de co-h´ elicit´ e, tout en minimisant ce d´ eplacement, c’est-` a-dire la distance entre la position sur la courbe en entr´ ee et la position relˆ ach´ ee.
3) Maintenant que l’on peut les interpoler par un arc de cercle ou un arc d’h´ elice, nous obtenons la courbe en arcs de cercle ou en h´ elices par morceaux d´ esir´ ee comme repr´ esent´ e ` a droite sur la figure.
10 Validation
Il y a deux mani` eres de montrer qu’un algorithme fonctionne correc- tement. La premi` ere, qui est la plus pr´ ecise et la plus d´ efinitive, est de d´ emontrer logiquement que l’algorithme produit bien les r´ esultats souhait´ es.
Ici, cela prendrait la forme d’un th´ eor` eme assurant, pour une courbe donn´ ee en entr´ ee, un r´ esultat compris dans un voisinage de cette courbe (voisinage qu’il faudrait d´ efinir pr´ ecis´ ement). Une telle mani` ere de proc´ eder est bien sˆ ur satisfaisante intellectuellement, mais parfois difficile ` a mettre en place. Dans notre cas, il s’agit encore d’un probl` eme ouvert.
La seconde approche, celle que nous allons employer ici, est plus empi-
rique. Si nous ne pouvons d´ emontrer pr´ ecis´ ement que l’algorithme fonctionne
dans tous les cas, montrons de mani` ere exp´ erimentale qu’il fonctionne dans
de nombreux cas. Ainsi, cette seconde approche consiste ` a faire tourner l’al-
gorithme sur de nombreuses courbes donn´ ees en entr´ ee, si possible de nature
vari´ ee, et ` a v´ erifier que les r´ esultats obtenus sont satisfaisants.
Dans ce qui suit, nous nous proposons ainsi d’´ evaluer exp´ erimentalement la qualit´ e de notre algorithme. Deux aspects sont ` a ´ evaluer : le temps de calcul d’une part, la qualit´ e de l’approximation d’autre part. Pour ´ evaluer le temps de calcul, il suffit de mesurer le temps que met l’algorithme (ou plus pr´ ecis´ ement, son impl´ ementation sur un ordinateur) pour produire un r´ esultat. Pour en ´ evaluer la qualit´ e, nous devons mesurer l’erreur commise par notre algorithme sur une courbe donn´ ee. Mais comment mesurer cette erreur ? Ce que nous souhaitons mesurer, c’est la distance entre les deux courbes, celle donn´ ee en entr´ ee et la courbe calcul´ ee par notre algorithme. Pour cela, nous choisissons d’utiliser la distance de Fr´ echet qui est adapt´ ee ` a la mesure de l’´ ecart entre deux courbes orient´ ees. Intuitivement, cette distance peut ˆ etre d´ ecrite comme la longueur minimale n´ ecessaire ` a une laisse pour qu’un chien et son maˆıtre se prom` enent, chacun sur une des deux courbes, ` a des vitesses diff´ erentes et quelconques, sans jamais rebrousser chemin. Plus formellement, la distance de Fr´ echet entre deux courbes Γ
1et Γ
2peut ˆ etre d´ efinie comme la limite inf´ erieure du maximum de ku
1(t) − u
2(t)k pour deux param´ etrisations quelconques u
1et u
2des courbes Γ
1et Γ2. En pratique, nous utiliserons la distance de Fr´ echet discr` ete [3], rapide ` a calculer, sur des ´ echantillonnages de chacune des courbes.
Il est ` a noter que les r´ esultats que nous pr´ esentons ici ont ´ et´ e r´ ealis´ es avec une impl´ ementation r´ ecente de l’algorithme des tangentes flottantes, dis- ponible librement ` a l’adresse suivante : http://www.inrialpes.fr/bipop/
people/bertails/Papiers/floatingTangents3d.html. Par ailleurs, cette impl´ ementation ´ etant plus r´ ecente que celle utilis´ ee pour produire les r´ esultats de l’article [2], les r´ esultats pr´ esent´ es ici ont ´ et´ e calcul´ es plus rapidement.
Courbes synth´ etiques Dans un premier temps, nous allons tester l’algo- rithme des tangentes flottantes sur des jeux de donn´ ees synth´ etiques (voir Figure 7), repr´ esentant des chevelures cr´ ees par un artiste. Chaque coiffure contient environ 240 cheveux, chacun d’une longueur d’environ 30 cm.
Une caract´ eristique int´ eressante de ces trois jeux de donn´ ees est le degr´ e de complexit´ e visuelle qui les compose. Intuitivement, une courbe est d’au- tant plus complexe qu’elle comporte de nombreuses boucles ou ondulations.
Nous constatons visuellement que ces trois jeux de donn´ ees repr´ esentent des
courbes de complexit´ e croissante. En effet, si les cheveux qui composent la
premi` ere coiffure sont presque droits, ceux de la seconde sont un peu plus
ondul´ es alors que ceux qui constituent la troisi` eme sont nettement plus on-
Figure 7 – Trois coiffures synth´ etiques.
dul´ es que sur les deux premi` eres. Plus quantitativement, nous proposons de mesurer la complexit´ e des courbes par la quantit´ e suivante, introduite par Levien dans son travail de th` ese [6],
C(Γ) = Z
Γ
κ
2+ τ
2,
o` u κ repr´ esente la courbure g´ eom´ etrique de la courbe Γ, et τ sa torsion g´ eom´ etrique.
Coiffure A Coiffure B
Complexité des courbes
Densité
Coiffure C
Figure 8 – R´ epartition des complexit´ es pour les trois coiffures synth´ etiques.
Sur la Figure 8, nous avons repr´ esent´ e les distributions de complexit´ e des courbes 3d pour chaque jeu de donn´ ees. Nous constatons que la mesure de Levien correspond bien ` a l’intuition visuelle de la complexit´ e d’une courbe.
En Figure 9, nous avons repr´ esent´ e la distribution des erreurs commises lors de l’approximation de chaque cheveu pour les trois coiffures, pour un nombre d’arcs d’h´ elice par courbe ´ egal ` a 10 et ` a 15. Figure 10, nous avons repr´ esent´ e la distribution des temps de calcul n´ ecessaire ` a l’approximation.
Nous constatons une grande ind´ ependance du temps de calcul de l’algorithme par rapport ` a la complexit´ e de la courbe initiale. En effet, notre algorithme fonctionne en interpolant des tangentes pr´ elev´ ees sur la courbe d’origine. Par cons´ equent, la complexit´ e de la courbe d’entr´ ee n’est pas prise en compte lors de l’approximation. Nous voyons en revanche que l’erreur commise est plus importante lorsque la complexit´ e s’accroˆıt, ` a nombre d’arcs d’h´ elice ´ egal, ce qui paraˆıt parfaitement raisonnable. En effet, plus une courbe est complexe, plus elle requiert d’arcs d’h´ elice pour ˆ etre approch´ ee convenablement.
0.0005 0.0010 0.0015 0.0020
05001000150020002500
Coiffure A
density_error_a_10$x
density_error_a_10$y
10 arcs 15 arcs
0.000 0.001 0.002 0.003 0.004 0.005
0200400600800
Coiffure B
density_error_b_10$x
density_error_b_10$y
10 arcs 15 arcs
0.00 0.01 0.02 0.03
050100150200
Coiffure C
density_error_c_10$x
density_error_c_10$y
10 arcs 15 arcs
Distribution de l'erreur pour 10 et 15 arcs d’hélices pour les trois coiffures synthetiques
Erreur − Distance de Fréchet (m)
Densité
Figure 9 – R´ epartition des erreurs d’approximation pour l’algorithme des tangentes flottantes appliqu´ e aux trois coiffures synth´ etiques.
La Figure 11 indique l’erreur moyenne commise sur chaque coiffure lorsque
le nombre d’arcs d’h´ elice augmente. Nous constatons que l’algorithme pr´ esente
un comportement souhaitable dans tous ces cas : plus le nombre d’arcs
d’h´ elice pass´ e en entr´ ee augmente (autrement dit plus l’algorithme des tan-
gentes flottantes poss` ede de degr´ es de libert´ e), plus l’approximation est pr´ ecise.
90 100 110 120
0.00.20.40.60.8
Coiffure A
density_time_a_10$x
density_time_a_10$y
10 arcs 15 arcs
90 100 110 120
0.00.10.20.30.40.50.6
Coiffure B
density_time_b_10$x
density_time_b_10$y
10 arcs 15 arcs
90 100 110 120
0.00.10.20.30.40.50.60.7
Coiffure C
density_time_c_10$x
density_time_c_10$y
10 arcs 15 arcs
Distribution des temps de calcul pour 10 et 15 arcs d’hélices pour les trois coiffures synthétiques
Temps de calcul (microsecondes)
Densité
Figure 10 – R´ epartition des temps de calcul pour l’algorithme des tangentes flottantes appliqu´ e aux trois coiffures synth´ etiques.
0 5 10 15 20 25 30
0.000.020.040.060.08
Erreur moyenne pour les trois coiffures en fonction du nombre d'hélices
Nombre d'hélices
Erreur − Distance de Fréchet (m)
Coiffure A Coiffure B Coiffure C
Figure 11 – Effet du nombre d’arcs d’h´ elices sur l’erreur d’approxima-
tion pour l’algorithme des tangentes flottantes appliqu´ e aux trois coiffures
synth´ etiques.
Courbes r´ eelles Nous allons appliquer notre algorithme des tangentes flot- tantes ` a l’approximation de 3 types de jeux de donn´ ees, repr´ esentant des courbes vari´ ees, issues de la capture de portions de cheveux [5], Figures 12, 13 et 14 ou de fibres musculaires de cœur [7], Figure 15 ou encore issues de la simulation des lignes du champ magn´ etique d’une ´ etoile [1], Figure 16.
Sur chaque figure, nous repr´ esentons ` a gauche les donn´ ees originales et ` a droite le r´ esultat de notre algorithme. Toutefois, ` a cause de l’h´ et´ erog´ en´ eit´ e des longueurs des courbes, nous devons adapter le nombre d’´ el´ ements utilis´ es pour l’approximation. Ainsi, pour les donn´ ees issues de la capture de cheveux, nous avons utilis´ e de 5 ` a 20 ´ el´ ements par courbe, de 2 ` a 100 ´ el´ ements par courbe pour les fibres musculaires et de 2 ` a 200 ´ el´ ements par courbe pour les lignes du champ magn´ etique. Nous reportons les erreurs commises et les temps de calcul pour chaque jeu de donn´ ees dans le tableau 17.
Les erreurs sont exprim´ ees en pourcentage de la taille du m´ edian des lon- gueurs des courbes du jeu de donn´ ees et les temps de calcul en millisecondes.
Nous constatons que sur tous les jeux de donn´ ees, l’algorithme des tangentes flottantes permet d’obtenir en un temps raisonnable (au plus quelques mi- nutes pour un millier de courbes) une approximation pr´ ecise des courbes pass´ ees en entr´ ee. Ces r´ esultats illustrent bien que l’algorithme des tangentes flottantes permet d’approcher de mani` ere pr´ ecise et rapide de gros jeux de donn´ ees issus d’applications r´ eelles.
Figure 12 – Jeu de donn´ ees (curls) repr´ esentant une portion de chevelure r´ eelle captur´ ee par un proc´ ed´ e automatique. ` A gauche, les donn´ ees originales,
`
a droite le r´ esultat de l’algorithme des tangentes flottantes.
Figure 13 – Jeu de donn´ ees (straight) repr´ esentant une portion de chevelure r´ eelle captur´ ee par un proc´ ed´ e automatique. ` A gauche, les donn´ ees originales,
`
a droite le r´ esultat de l’algorithme des tangentes flottantes.
Figure 14 – Jeu de donn´ ees (wavy) repr´ esentant une portion de chevelure r´ eelle captur´ ee par un proc´ ed´ e automatique. ` A gauche, les donn´ ees originales,
`
a droite le r´ esultat de l’algorithme des tangentes flottantes.
Figure 15 – Jeu de donn´ ees repr´ esentant les fibres musculaires d’un cœur.
A gauche, les donn´ ` ees originales, ` a droite le r´ esultat de l’algorithme des tangentes flottantes.
Figure 16 – Jeu de donn´ ees repr´ esentant les lignes d’un champ magn´ etique
d’une ´ etoile, obtenues par simulation. ` A gauche, les donn´ ees originales, ` a
droite le r´ esultat de l’algorithme des tangentes flottantes.
Cheveux 1 (curls) Cheveux 2 (straight) Cheveux 3 (wavy) Coeur Etoile´
erreur moyenne 0.7% 0.7% 0.6% 0.2% 0.7%
erreur maximale 5% 14% 2% 1% 6%
Tps moyen (ms) 30 32 38 14 101
Tps maximal (ms) 206 128 143 257 3320
Tps total (s) 60 79 58 42 890
Figure 17 – Temps de calcul et erreur d’approximation de l’algorithme des tangentes flottantes appliqu´ e aux jeux de donn´ ees r´ eelles.
11 Limitations de l’algorithme
Ph´ enom` ene de boucle Nous avons vu que dans de nombreux cas, synth´ e- tiques comme r´ eels, l’algorithme des tangentes flottantes r´ epond tr` es bien aux exigences de l’utilisateur : qualit´ e et rapidit´ e. Toutefois, comme nous pou- vons le voir pour l’erreur repr´ esent´ ee Figure 18, il arrive dans certains cas d´ eg´ en´ er´ es que des erreurs importantes apparaissent, mˆ eme avec un nombre d’arcs d’h´ elice important. Ce ph´ enom` ene, que nous d´ esignons par “ph´ enom` ene de boucle” se produit lorsque deux tangentes proches l’une de l’autre sur la courbe sont invers´ ees par la relaxation des points, ce qui transforme de petits arcs en arcs de grande longueur. Nous illustrons ce ph´ enom` ene dans le cas 2d en Figure 19.
D´ ecoupage r´ egulier Par ailleurs, lors du d´ ecoupage de la spline, nous avons choisi d’espacer les points de mani` ere r´ eguli` ere sur la spline, pour pro- duire une courbe en morceaux d’h´ elices ayant ` a peu pr` es la mˆ eme longueur.
Si ce choix a peu de r´ epercussions lorsque le nombre d’arcs est grand, il peut devenir probl´ ematique lorsque le nombre d’arcs est faible. En effet, si nous envisageons une courbe qui aurait deux parties, l’une longue et de courbure faible et l’autre courte mais de courbure importante, nous pourrions vouloir l’approcher avec seulement deux arcs d’h´ elice. H´ elas, avec l’algorithme tel qu’il est pr´ esent´ e ici, nous ne pourrions pas obtenir de r´ esultat satisfaisant, puisque le point de raccord des deux arcs d’h´ elice se trouverait au milieu de la courbe d’entr´ ee et non pas ` a la jonction des deux parties la composant.
Afin d’´ eviter ce type de probl` eme, il serait judicieux de trouver les meilleurs
points o` u d´ ecouper la courbe en entr´ ee, par exemple en ´ etudiant les variations
de la courbe pour trouver les parties les plus susceptibles d’ˆ etre approch´ ees
par un arc d’h´ elice.
0 20 40 60 80 100
051015
Erreur d'approximation
pour une courbe en fonction du nombre d'hélices
Nombre d'hélices
Erreur − Distance de Fréchet (m)
Figure 18 – Erreur d’approximation de l’algorithme des tangentes flottantes pour une courbe donn´ ee. Le brusque saut qui survient autour de 70 arcs d’h´ elice est la manifestation du ph´ enom` ene de boucle qui peut apparaitre lorsque des points de rupture sont proches.
Faible contrˆ ole sur l’erreur Enfin, nous avons fait le choix de laisser le nombre d’arcs en param` etre d’entr´ ee de l’algorithme, permettant ` a l’utili- sateur de le contrˆ oler pr´ ecis´ ement. Ce choix s’accompagne d’une limitation
´
evidente sur l’erreur d’approximation : il est difficile de la contrˆ oler finement.
En effet, nous avons vu que lorsque le nombre d’arcs d’h´ elice ´ etait trop faible, l’erreur pouvait ˆ etre grande. De mˆ eme, lorsque le nombre d’arcs d’h´ elice est
´
elev´ e, le ph´ enom` ene de boucle peut survenir et produire une approximation
de pi` etre qualit´ e. Nous pourrions donc envisager comme extension de l’algo-
rithme une m´ ethode pour pr´ edire l’erreur d’approximation commise, ce qui
permettrait de guider l’utilisateur de l’algorithme dans son choix du nombre
d’arcs d’h´ elice. Plus simplement, nous pourrions envisager de d´ etecter les
boucles et d’y rem´ edier lors de la relaxation des points.
2 points de jonction trop proches
Courbe de départ et points de jonction avec leurs tangentes
Courbe approchée par l’algorithme des tangentes flottantes Les points sont
inversés
Gros plan
Gros plan