Upload
lethuy
View
212
Download
0
Embed Size (px)
Citation preview
ÉCOLE NATIONALE SUPÉRIEURE D'INFORMATIQUE ET DE MATHÉMATIQUESAPPLIQUÉES DE GRENOBLE
RAPPORT DE TER 2008-2009par
Thomas DELAMÉ
IMPLÉMENTATION DES OPÉRATEURS DE LEYTON
POUR FOURNIR UNE INTERFACE INTUITIVE DE DESSIN 2D
Encadré par M-P. CANI et J-C. LÉON
Grenoble, le 29 juin 2009
INTRODUCTION
M. Leyton est un chercheur très productif notamment dans des travaux sur la compréhension
des formes par l'être humain, travaux qui ont conduit à une nouvelle philosophie sur le
traitement et la création de formes. Il a démontré que toute forme plane fermée peut être réduite
à l'état d'un cercle par l'application d'une grammaire de formes. Ainsi l'application des règles de
cette grammaire permet de remonter l'historique de la création de la forme jusqu'à son origine.
Et du fait du domaine de ces travaux, la compréhension des formes par l'humain, il apparaît que
ces règles - également appelées opérateurs - sont intuitives pour tous. Ce qui signifie qu'à l'aide
de ces opérateurs, une personne peut créer toutes les formes régulières planes et fermées
imaginables, et ce uniquement par l'intuition – je veux dire sans avoir recours à une quelconque
spécification de la forme ou à des connaissances pré-requises (comme la modélisation
géométrique ou les mathématiques appliquées).
Ces opérateurs permettraient alors d'apporter enfin la simplicité d'utilisation qu'il manque tant
aux logiciels de dessins par ordinateur et leur faire franchir un pas vers le dessin intuitif et la
créativité sans restrictions. Cependant, comme beaucoup des travaux de M. Leyton, ils sont
théoriques et ces opérateurs n'ont pas encore étés mis en pratique. C'est pourquoi l'équipe
EVASION de l'INRIA de Grenoble proposa ce TER; pour valider les théories de M. Leyton et
pouvoir tirer partie d'un nouvel outil dans la conception assistée par ordinateur (ou CAO, un
domaine fortement utilisé, et aujourd'hui encore en pleine extension).
Il s'agit donc d'étudier ici la théorie de M. Leyton pour maquetter une solution pratique. Le
problème avec cette théorie c'est qu'elle renvoie les formes à leur origine - un cercle - alors que
nous, nous voulons l'utiliser pour créer une forme. En quelque sorte nous voulons parcourir
l'historique des formes en sens inverse : de son origine vers sa finalité. Il y aura donc certaines
modifications à apporter pour rendre cela réalisable et établir la liste des fonctionnalités à
implémenter pour atteindre l'objectif : une interface de dessin 2D intuitive pour un utilisateur
novice via les opérateurs de M. Leyton. Il faudra également trouver une représentation interne
des données pour apporter un support à ces fonctionnalités, et hiérarchiser les couches de
représentations du niveau programmeur au niveau utilisateur, pour que l'utilisateur puisse agir
de manière transparente et lui laisser libre cours à sa créativité.
3
Pour atteindre l'objectif posé, j'ai commencé par me familiariser avec la théorie de M.
Leyton dont j'expose un compte-rendu illustré au chapitre 1. Une fois cette théorie assimilée,
notamment par la lecture des papiers plus récents de M. Leyton, j'ai réalisé une analyse IHM
(interface homme-machine) pour lister les fonctionnalités à implémenter selon le cahier des
charges de ce projet. Un modèle de l'interface a d'ailleurs été réalisé pour pouvoir vérifier le
caractère intuitif des manipulations, ceci avec le concours de Vincent Bouvier, élève
ENSIMAG en deuxième année. Cette étude IHM est proposée dans le chapitre 2. Après cette
étude, il a fallut examiner les possibilités des déformations pour pouvoir utiliser le concept à
son potentiel maximum. Ce qui conduit à un cahier des charges provenant de l'interface,
apporté dans le chapitre 3. Ensuite, il fallait énoncer les critères pour sélectionner un modèle de
représentation des formes. Ces critères sont listés dans le chapitre 4. Ensuite, trois familles de
modèles de description de formes sont mises en correspondance avec les critères, pour avoir
une idée de la direction à prendre pour l'implémentation.
Du fait de certaines circonstances entravant mon travail – je suis actuellement hospitalisé
pour une durée indéterminée – il ne sera pas possible de fournir une implémentation pour la
date limite des TER 2008-2009. De plus, il n'est pas sûr que le travail de recherche soit fini
entièrement et documenté correctement, en effet le personnel soignant m'interdit toutes formes
d'activités qui ne consistent pas en un repos absolu allongé (merci de ne pas leur signaler mon
manquement au règlement!). Ce rapport est réalisé malgré tout comme un carnet de route de
mes recherches pour pouvoir d'abord évaluer mon travail dans le cadre d'un TER, mais surtout
de pouvoir reprendre ces recherches pour finaliser le but : fournir une implémentation puis la
tester d'un point de vue performance et intuition. Car le sujet est intéressant, et il permet
d'ouvrir des perspectives dans la CAO.
4
Table des matières
Chapitre 1 - La théorie sous-jacente de M. Leyton..............................................................................71. Description des formes................................................................................................................72. Grammaire des formes..............................................................................................................10
Chapitre 2 - Définition de la solution logicielle à développer............................................................151. Définition de la raison d'être du logiciel...................................................................................16
1.1 Définition des objectifs du logiciel.....................................................................................161.2 Analyse de l'existant...........................................................................................................161.3 Critères de réussite.............................................................................................................17
2. Modélisation du problème ........................................................................................................172.1 L'utilisateur cible................................................................................................................172.2 Modèle de l'activité............................................................................................................182.3 Arbre d'activité....................................................................................................................19
3. Aspects de l'interface................................................................................................................203.1 Le plan de travail.................................................................................................................203.2 L'espace autour du plan de travail.......................................................................................213.3 Le menu circulaire..............................................................................................................223.4 Justification des choix de répartition et résultat.................................................................23
4. Spécifications des actions de l'utilisateur.................................................................................254.1 La palette de couleur..........................................................................................................254.2 La modification de l'historique..........................................................................................264.3 Utilisation de la couleur courante......................................................................................274.4 Sélection d'une forme.........................................................................................................284.5 Opérations de modifications de la représentation..............................................................294.6 Utilisation des outils de déformation..................................................................................314.7 Le menu circulaire...............................................................................................................334.8 Définition de la zone d'impression et impression..............................................................344.9 Charger, Sauver et Quitter...................................................................................................35
Chapitre 3 - Cahier des charges de l'interface.....................................................................................371. Les possibilités de déformation..................................................................................................38
1.1 Domaines d'application......................................................................................................381.1.1 Les domaines implicites...............................................................................................381.1.2 Les domaines explicites...............................................................................................39
1.2 Vues de l'objet.....................................................................................................................401.2.1 Comme un contour.......................................................................................................401.2.2 Comme une aire...........................................................................................................41
2. Décision contextuelle de l'opération.........................................................................................412.1 La forme est remplie : travail à aire fixée............................................................................422.2 La forme n'est pas remplie : travail sur le contour...............................................................43
2.2.1 Le contour est plein.....................................................................................................442.2.2 Le contour est en pointillés.........................................................................................44
3. Les limites d'utilisation.............................................................................................................44
5
Chapitre 4 - Critères recherchés dans une représentation des formes................................................481. Mot de courbure........................................................................................................................482. Le contrôle de la localité...........................................................................................................483. La possibilité de déformation de type flexion..........................................................................494. Opérations à aire constante.......................................................................................................505. Opérations à périmètre constant...............................................................................................50
Chapitre 5 - Analyse des modèles de description de formes..............................................................521. Les courbes de Bézier et les NURBS.........................................................................................522. Les clothoïdes approximées par des B-splines.........................................................................533. Les courbes implicites..............................................................................................................54
CONCLUSION..............................................................................................................................58
6
Chapitre 1
La théorie sous-jacente de M. Leyton
Ce chapitre résume les points clefs de la théorie de M. Leyton utilisés pour obtenir unemanipulation interactive et intuitive des formes 2D par ordinateur. Nous y verrons donc lessix règles utilisées par M. Leyton pour créer toute forme plane fermée et la définition deson axe PISA.
1. Description des formes
Pour décrire les formes possibles, M. Leyton se base sur l'évolution d'une caractéristique
intrinsèque aux courbes : leurs courbures. C'est ici le fondement de sa théorie; les formes vues
comme une variation de courbure. Il a démontré que les formes vues sous cet angle peuvent
être définies et manipulées par les extrema de courbures, et il va plus loin dans sa constatation
en affirmant que chaque portion de courbe qui a un unique extremum de courbure P, a un et un
seul axe de symétrie, qui se termine forcément en P. On peut voir alors cet axe de symétrie
comme l'empreinte d'un processus qui a créé cette variation de courbure donnant lieu à
l'extremum.
Une forme complexe est alors le résultat d'un ensemble de processus appliqués le long des
axes de symétrie. Ces axes sont nommés PISA – Process-Inferring Symmetry Analysis [Leyton
88], un de ces axes est défini comme le lieu du point Q se trouvant au milieu de l'arc AB du
cercle tangent à cette forme en les points A et B comme le décrit la figure suivante :
7
Figure 1.1 : axe de symétrie par le système PISA
Une des caractéristiques intéressantes de ces axes est qu'ils se terminent sur un extremum,
c'est, dirons nous, un peu leur fonction première. C'est en ce sens qu'ils sont différents des axes
utilisés pour les squelettes des surfaces implicites : ce n'est pas le centre du cercle tangent
maximal intérieur. Ce qui fait que les axes ne forment pas forcément un ensemble connexe, ils
sont à l'extérieur de la forme dans le cas d'indentations, et ils n'ont pas de début à proprement
parler. En effet, où commencer ces axes de symétrie ? Voyez la figure suivante et remarquez
qu'on aurait pu les tracer plus ou moins longs en fonction du choix de leurs origines :
Les points d'inflexions sont souvent
notés d'un cercle ou d'un zéro sur la
courbe elle-même, ils servent à délimiter
l'espace des recherches d'extrema de
courbures. Ce qui peut-être utile pour
l'implémentation (l'idée d'un «Diviser
pour Régner» me vient en tête si la
représentation des formes n'est pas
directement piloté par la courbure – voir
les clothoïdes plus loin).
Les axes de symétrie sont représentés
en pointillés et on voit bien que leur
longueur est arbitraire.
Il est donc à noter la nécessité de définir pleinement ces axes ou une variante éventuelle (le
côté non connexe et alternance intérieur-extérieur peut gêner quelque peu le côté intuitif dans le
visuel) pour pouvoir les calculer par ordinateur et les utiliser.
8
Figure 1.2 : axes de symétrie d'une forme complexe
J'ai expliqué que les formes étaient vues comme une variation de courbure, ces variations
sont résumées par les extrema de courbures. La courbure est définie dans le sens
trigonométrique : l'intérieur de la forme est à gauche et l'extérieur à droite. Il en existe de quatre
types que je présente ci-après :
• le maximum local positif, noté M+ correspondant à une protusion (une avancée de
l'intérieur de la forme vers l'extérieur)
• le maximum local négatif, noté M- correspondant à une résistance de l'extérieur à une force
intérieure (appelée résistance)
• le minimum local positif, noté m+ correspondant à une résistance de l'intérieur à une force
extérieure (appelée «squashing»)
• le maximum local négatif, noté m- correspondant à une indentation (une avancée de
l'extérieur vers l'intérieur de la forme)
Ces extrema accompagnés des points d'inflexions permettent de caractériser une catégorie
de formes ayant des variations de courbures similaires par un mot, unique à une permutation
circulaire près, que je nommerai mot de courbure. Par exemple, la figure suivante est
caractérisée par le mot “ M+0m-M-m-0M+m+M-m+ ”.
Les mots de courbures définissent alors
des classes d'équivalences sur les formes, et
l'on passe d'une classe à l'autre par
l'application d'une règle de la grammaire de
forme de M. Leyton [Leyton 88, Leyton 92,
Leyton 2001].
C'est ce que nous allons voir dans la
prochaine section, où le fait de noter
également les points d'inflexions dans le mot
de courbure sera expliqué.
9
Figure 1.3 : annotation des extrema de courbures
2. Grammaire des formes
Une fois défini le vocabulaire de description des formes, M. Leyton propose un ensemble de
processus pour transformer une forme en une autre. Deux catégories de processus peuvent
modifier la variation de la courbure i.e. le mot de courbure : la continuation et la bifurcation,
appliquées sur les extrema de courbure. Dans une continuation le processus continue le long de
l'axe PISA, gardant cet axe unique. Dans une bifurcation, le processus se sépare en deux axes
distincts.
Ces processus sont regroupés sous le terme grammaire, terme utilisé pour mettre en
évidence le fait que cet ensemble de règles permet la définition de phrases (formes complexes
en terme de variation de courbure) à partir d'un ensemble de mots (formes plus simples, jusqu'à
l'axiome qui est le cercle).
Rappelons cependant que M. Leyton remonte l'histoire de la forme vers le cercle, de ce fait
certaines modifications ne sont pas prises en compte dans la grammaire. Par exemple lorsqu'on
augmente la courbure en un point M+ ou qu'on la diminue en un point m-, cela ne produit pas de
nouvel extremum comme on peut le voir sur la figure 1.3. Ces deux opérations appelées
continuation en M+ et en m- ne développent pas le mot de courbure, or la théorie de M. Leyton
visait à réduire ce mot de courbure au mot vide (par réduction en reconnaissant la partie droite
de la règle et en conservant la partie gauche, comme pour vérifier qu'un mot appartient bien à
un langage défini par une grammaire en théorie des langages), c'est pourquoi elles ne sont pas
dans la grammaire.
10
Le «squashing» continue jusqu'à ce qu'il y ait indentation :
C'est une continuation en m+ notée Cm+ : m+ 0m-0, car elle transforme un maximum
positif en une séquence de deux points d'inflexions entourant un nouveau maximum de
courbure mais qui cette fois est négatif.
La résistance continue jusqu'à ce qu'il y ait protusion :
C'est une continuation en M- notée CM- : M- 0M+0, car elle transforme un maximum
négatif en une séquence de deux points d'inflexions entourant un nouveau maximum de
courbure mais qui cette fois est positif.
11
Figure 1.4 : continuation en m+ jusqu'à indentation
Figure 1.5 : continuation en M- jusqu'à protusion
La formation d'un bouclier :
C'est une bifurcation en M+ notée BM+ : M+ M+m+M+. Au lieu d'un maximum positif de
courbure, on se retrouve avec une sorte de forme rappelant un bouclier, d'où le nom (par
ailleurs je ne me suis pas permis de donner d'autres noms aux règles, je ne fais que de les
traduire en français, au mieux des possibilités).
La formation d'une baie :
C'est une bifurcation en m- notée Bm- : m- m-M-m-. Au lieu d'une indentation de la
forme on, se retrouve avec un espace creusé ressemblant à une baie vers l'intérieur de la forme.
12
Figure 1.6 : bifurcation en M+
Figure 1.7 : bifurcation en m-
Forcer la formation d'une protusion :
C'est une bifurcation en m+ notée Bm+ : m+ m+M+m+. Cette règle avec la suivante est un
peu particulière. On pourrait dire qu'elle utilise la consistance de la forme, i.e. son analogie
physique avec sa résistivité et son élasticité. Ici on peut voir ça comme le résultat d'un appui
extérieur de part et d'autres d'un maximum positif de courbure.
Forcer la formation d'une indentation :
C'est une bifurcation en M- notée BM- : M- M-m-M-. Cette règle est aussi un peu
difficile à appréhender comme la précédente. Il s'agit en fait de sa réciproque, en considérant
que c'est l'extérieur de la forme qui est consistant, et l'intérieur qui n'oppose pas de résistance.
Ces deux dernières règles font réfléchir sur la manière de les implémenter, mais surtout de les
rendre intuitives (car vous en conviendrez, même si ici elle est plus détaillée que dans les textes
originaux, le schéma et la description ne suffisent pas vraiment à pleinement la comprendre à
la première lecture).
13
Figure 1.8 : bifurcation en m+
Figure 1.9 : bifurcation en M-
Chapitre 2
Définition de la solution logicielle à développer
Le but de ce travail de recherche n'est pas simplement d'implémenter les opérateurs de M.Leyton, il faut les encadrer dans une solution pratique et intuitive. Car dans le domaine deconception de formes libres, des progrès ont étés faits, mais comme le conclut Jean-Philippe Pernot dans sa thèse [Fully Free Form Deformation Features for Aesthetic andEngineering Designs, 2004] des efforts doivent encore être fournis pour permettre unutilisateur novice de définir (et «de paramétriser») ses propres formes libres. C'est pourquoinous nous penchons ici d'abord sur l'interface et l'utilisateur dans une approche «Top-Down» pour établir une solution intuitive et adaptée aux utilisateurs novices.
1. Définition de la raison d'être du logiciel
1.1 Définition des objectifs du logiciel
Les objectifs du logiciel sont :
� permettre une déformation intuitive de formes libres 2D (restreintes aux formes deux
fois continument dérivables, fermées n'ayant pas d'intersection avec elles-mêmes) pour tout
utilisateur n'ayant aucune connaissance dans le domaine de la modélisation géométrique
� l'ensemble devra être cohérent du point de vue du caractère intuitif des déformations et
de son utilisation
1.2 Analyse de l'existant
Du point de vue de l'existant et des besoins, ce que l'on reproche aux logiciels de dessin 2D
en particulier c'est :
� l'absence de l'utilisation de l'intuition humaine dans le tracé de formes. Par exemple on
aura souvent recours à des points de contrôles et des valeurs numériques pour obtenir la
forme désirée. Or un esprit humain ne fonctionne pas ainsi, et encore moins une personne
pour qui les mots "point de contrôle" ou "rayon de courbure" sont inconnus.
15
� les connaissances spécifiques en modélisation géométrique ou en traitement d'image sur
lesquelles ils s'appuient. Même les utilisateurs experts occasionnels sont perdus lorsqu'ils
souhaitent réaliser une action.
� leurs panels d'outils bien trop complexes, étalés, et dans la plupart des cas fouillis, à tel
point que la recherche d'un outil même connu peut prendre du temps .
L'utilisateur a donc énormément de difficultés pour dessiner ce qu'il veut, car il doit d'abord
appréhender les concepts de design informatique, puis les outils, pour finalement ne pas obtenir
la forme qu'il désire ou alors après une longue lutte. Ce qui rend ces logiciels peu attractifs et
délaissés des utilisateurs lambda comme expert, à cause de la raideur de leurs utilisations qui
bride la créativité. Par exemple, les personnes travaillant dans la modélisation d'un personnage
numérique dans le cadre du développement d'un jeu vidéo commencent par de la glaise, des
maquettes, sur lesquelles ils travaillent, puis seulement une fois le résultat souhaité obtenu, ils
passent à la numérisation et au traitement informatique des formes.
On peut donc en conclure que l'utilisation de ces logiciels est évitée, ou alors soigneusement
repoussée, ce qui traduit dans une certaine manière leurs échecs. Il apparaît alors comme
nécessaire de bien définir l'utilisateur cible de l'application de dessin 2D en projet ici, pour
coller le plus possible à ses attentes et ses intuitions.
1.3 Critères de réussite
L'approche de l'implémentation des opérateurs de M. Leyton sera donc validée si :
� l'utilisateur ne cherche pas après un outil, un simple coup d'œil lui permet de le
sélectionner et son intuition de l'utiliser. Il ne doit pas être surpris par le résultat de
l'application des outils sur ses formes.
� l'utilisateur met moins de temps à déformer une forme de base pour la rendre conforme à
ses désirs plutôt que de la tracer à main levée et la corriger en effaçant et reconstruisant les
parties peu satisfaisantes.
16
2. Modélisation du problème
2.1 L'utilisateur cible
Le défi de ce nouveau système est de considérer l'utilisateur comme novice, et ce dans toutes
les catégories. Du point de vue connaissances générales, l'utilisateur doit juste savoir se servir
d'une souris et comprendre le français. Quant aux connaissances en bureautique, elles sont très
faibles car l'interface du nouveau système sera uniquement composée de représentations
visuelles des outils disponibles directement sur la surface de travail. L'utilisateur doit donc
uniquement être capable d'interagir avec une interface composée d'outils apparents via sa
souris.
L'utilisateur expert ne fait pas partie de la population cible, il est donc normal qu'il puisse
trouver qu'il manque des fonctionnalités, car lui seul peut estimer en avoir besoin. Et ce même
si à terme il fera l'objet d'application où il sera le principal utilisateur visé (CAO,
animation, ...), on doit penser en terme d'utilisateur novice pour éviter de reprendre les lacunes
des actuels logiciels de dessins 2D ou 3D.
2.2 Modèle de l'activité
Pour modéliser l'activité, j'ai eu recours à de nombreux sondages exploratoires avec de petits
scénarios sous l'apparence d'une image de départ, d'une image d'arrivée avec la question :
comment feriez-vous pour passer d'une forme à une autre? J'ai aussi organisé des Focus Group
avec mes encadrant de l'équipe EVASION de l'INRIA et avec des cercles de peintres
artistiques. Et enfin j'ai noté mes observations des salles de travail de l'ENSIMAG où les
étudiants s'évertuaient à réaliser un schéma pour un quelconque rapport. Les conclusions sont :
� un système de dessin en 2D intuitif n'existe pas encore ou alors est inconnu alors que
parallèlement son besoin est plus que présent
� la philosophie des formes de M. Leyton s'avère décrire ce que chaque personne pensait
17
� les concepts plus évolués comme les "driving lines" ou "target lines" (j'ai repris l'idée de
la thèse de Jean-Philippe Pernot précédemment citée) ont été rejetés par la majorité.
Cependant lorsqu'un squelette était placé à l'intérieur de sa forme, elles ont acceptées le
concept de flexion (par exemple courber une forme fermée sans en changer son aire).
� le concept de "dessin incrémental" est celui qui a été proposé par chaque personne
rencontrée, ce qui correspond à l'étude préliminaire du projet.
� il faut donc définir un critère de tolérance de la courbure, c'est-à-dire quantifier l'écart
numérique entre deux courbures différentes pour que les déformations de la courbure
restent intuitives et perceptibles aux yeux de la majorité des utilisateurs cibles.
� un retour visuel des limites d'application d'un opérateur est à prévoir pour éviter que la
forme ne change de classe sans que l'utilisateur ne l'eusse souhaité. C'est ce que j'ai appelé
conservation du mot de courbure. Il faut donc afficher les frontières d'utilisation d'un
opérateur avant qu'il ne change le mot de courbure.
� les primitives telles que les lignes et polygones ne doivent pas avoir leur place dans cette
application, car d'un point de vue technique la déformation de formes à courbure
discontinues est encore dans le domaine de la recherche (de même que l'assemblage de
forme) et d'un point de vue artistique le concept de ligne est plutôt mal accueilli
� la création d'une forme doit se faire uniquement avec une souris, et un ensemble restreint
d'outils
18
2.3 Arbre d'activité
Pour résumer cette étude, voici alors l'arbre d'activité réalisé d'après les informations
recueillies :
Il a été porté à mon intention qu'on ne comprenait pas forcément où se situait la création
d'une nouvelle forme dans cet arbre d'activité. En fait cette action est bel et bien sur l'arbre,
mais sous le nœud "outils utilisant la couleur courante", car le contour d'une nouvelle forme a
un trait de la couleur courante. On pourrait tout aussi bien faire autrement, mais les personnes
questionnée lors de cette étude ont manifesté le besoin de pouvoir choisir la couleur du contour
d'une forme. C'est pour cette raison que la création d'une forme est sous le nœud nommé plus
haut, et que l'on peut s'attendre à le trouver ailleurs.
19
3. Aspects de l'interface
Avant de spécifier les actions, il est important de décrire l'interface, de nommer ses
composants (pour pouvoir les utiliser dans la spécification des évènements utilisateurs) et de
les justifier.
3.1 Le plan de travail
J'entends par plan de travail, l'endroit où l'on dessinera/déformera. Par exemple en cuisine,
c'est l'endroit où l'on prépare les aliments, en dessin c'est l'endroit où l'on applique les couleurs
pour composer son œuvre. Voici donc la description du plan de travail :
� il ressemble à une planche de dessin avec une feuille de papier dedans pour conserver la
métaphore d'un bureau virtuel, et ainsi donne l'intuition à tout utilisateur ayant vu une
planche à dessin que c'est sur sa surface que le dessin va se réaliser. L'amélioration avec une
surface blanche coulissante dans les deux directions utilisée dans la plupart des logiciels de
dessins, est que l'on a une limite visuelle et intuitive de la zone de dessin.
� du fait de l'analogie avec la planche de dessin, il est bordé par 4 coins apparents (ces
coins servent à ancrer la feuille sur la planche pour éviter qu'elle ne se déplace au cours du
dessin). Ils ne sont pas là uniquement pour l'analogie; en effet, ils délimitent la surface du
dessin qui sera envoyée à l'imprimante. Ainsi plus de boîte de dialogue sur la manière
d'imprimer son dessin (portrait, paysage, marges, ...), on règle la position des coins et on
imprime "ce qu'il y a sur la feuille de dessin". Ce qui paraît assez intuitif et lève tous
problèmes de boîte de dialogue (ici totalement proscrites!) rébarbatives.
3.2 L'espace autour du plan de travail
Le plan de travail étant décrit, passons maintenant aux espaces l'entourant :
� le haut et le bas d'un plan de travail ne conviennent pas pour des représentations d'outils
physiques. Lorsque l'on se met à dessiner, les crayons, règles, et autres se trouvent sur les
côtés du plan de travail. Ceci vient peut-être du temps où nous étions à l'école sur des
bureaux peu profonds, et où mettre des outils en haut ou en bas du plan de travail résultait
20
souvent en un ramassage de trousse, ou de crayon de couleur battant tous les records de
distance parcourue en roulant par un volume presque cylindrique. Ainsi sur le haut et le bas
du plan de travail, nous mettrons les outils non physiques, i.e. propre au fait que ce soit un
logiciel (imprimer, quitter, annuler, refaire, etc...).
� d'après ce qui précède les représentations d'outils physiques doivent se placer sur les
côtés droit et gauche du plan de travail. Remarquons que moins de 10% des personnes sont
gauchères, et que les droitiers positionnent leurs palette de peinture sur la gauche car il est
plus facile de ramener le bras droit sur la gauche que sur la droite. Donc (n'en déplaise aux
gauchers qui sont considérés comme ayant une prédisposition aux talents artistiques) la
palette de couleur sera à gauche, ce qui correspond aux attentes intuitives de la majorité de
la population : les droitiers. De plus on placera de ce côté là, les outils utilisant la couleur,
parce que le retour visuel sera plus efficace, et qu'exclusivement, on utilise la palette juste
avant les outils de remplissage et de nouvelle forme, ce qui limite la trajectoire de la souris
lors de la sélection de la couleur et d'un tel outil.
� reste le côté droit, sur lequel on verra les outils de dessin à proprement parler. Soit dans
ce cas-ci l'outil de déformation, et l'outil de sélection d'une forme. Ceci est justifié parce-
que d'une part, il n'existe plus aucune place en dehors de l'espace de travail pour y déposer
des outils et parce que la majorité des personnes (toutes nos excuses aux gauchers du
monde entier...) posent leurs pinceaux sur le côté droit de la planche à dessin. Pour
conserver l'analogie, entre le plan de travail et une véritable planche à dessin, entre le
pinceau et l'outil de déformation; nous positionnerons les outils de déformation et de
sélection de tronçon sur le côté droit du plan de travail.
NB : J'utilise le terme de sélection de tronçon, alors qu'il n'est pas encore défini. Cela vient
du fait que les opérateurs de M. Leyton ne spécifient pas les zones déformées. Par défaut ce
sera entre deux extrema du même genre (par exemple, l'étude sera faite plus tard), mais si
l'utilisateur veut déformer une zone précise, alors il sectionnera la forme en tronçons à l'aide de
cet outil pour définir la zone à déformer.
21
3.3 Le menu circulaire
Il reste des outils que nous avons dégagés de l'analyse sans les avoir placés sur l'interface. Ce
sont les outils relatifs à la représentation du plan de travail : déplacer, s'approcher/s'éloigner.
Nous remarquerons qu'il n'y a plus de place autour de l'espace de travail (dans sa position
initiale, car il est prévu que lorsque l'on se rapproche du plan de travail, sa représentation ne se
limite pas à ses dimensions initiales, i.e. que les outils se retrouvent sans bouger au dessus de la
feuille, cela n'est pas une gêne car personne ne dessine dans les marges, et que pour rester
cohérent les outils ne doivent pas changer de place à l'écran). Encore une fois on pourrait dire
que ce n'est pas une bonne raison d'un point de vue IHM, mais c'est ce qui a donné l'idée
suivante : lorsque l'on clique droit à l'intérieur du plan de travail, un disque réparti en trois
secteurs contenant chacun un outil apparaît. Ces outils sont se déplacer sur le plan de travail, se
rapprocher du plan de travail ("zoom"), s'éloigner du plan de travail ("de-zoom").
Nous les plaçons là, car l'utilisateur en a besoin lorsqu'il dessine et que la vue ne lui convient
plus, il désire se déplacer, se rapprocher/s'éloigner à partir de la position courante de son
curseur. Il ne doit donc pas avoir à aller chercher un outil, se repositionner sur son ancienne
position et utiliser l'outil. Et comme le seul médium (d'après le questionnaire de l'analyse) entre
le monde de l'utilisateur et l'interface du logiciel est la souris, un système de raccourci clavier
est hors de question. D'où ce système de disque d'outils apparaissant sur demande à l'endroit où
le curseur travaillait sur le plan de travail.
3.4 Justification des choix de répartition et résultat
Maintenant il faut détailler un peu la répartition (et ces choix) des outils sur le haut et le bas
de l'espace de travail. L'utilisateur a tendance à regarder plutôt le haut d'une fenêtre d'une
application. C'est pour ça par exemple qu'on trouve en haut les outils fréquemment utilisés (par
exemple dans Open Office on trouve les outils enregistrer, charger, annuler, et les applications
de style de caractère, alors qu'en bas on a les outils de dessins, moins utilisés dans une
application de traitement de texte). Ainsi on placera en haut les outils d'annulation de la
dernière étape, et de reproduction de la dernière étape annulée; car c'est un logiciel de dessin
par déformation, par lequel on va utiliser le concept de dessin incrémental. Ces deux outils vont
22
donc être souvent utilisés pour refaire une déformation, ou remonter plus loin dans l'historique
de la forme pour reprendre son "tracé-déformation".
A présent les outils de chargement de dessin, sauvegarde de dessin, impression, et quitter
l'application; qui sont des outils utilisés généralement une fois dans le cycle de vie de
l'application dans le système d'exploitation (sauf si bien sûr on sauvegarde toutes les 5 min et
qu'on s'amuse à charger plusieurs dessins, mais la logique nous dit qu'on utilise ces outils une
seule fois). C'est pourquoi ils sont positionnés en dessous de l'espace de travail, car l'utilisateur
ne les regarde pas tout le temps, et qu'un mouvement de souris vers le bas pour descendre le
curseur, cliquer sur un outil, puis remonter le curseur pour l'utiliser n'est pas agréable (en
général on réussit mieux sur les côtés, et sur le haut à courte distance, et comme on a tendance
à dessiner plutôt sur le haut d'une feuille, cela ne rentre pas en contradiction avec le
positionnement des outils fréquemment utilisés, et utilisés une seule fois).
Voici donc un aperçu de l'interface à mettre en place :
23
Les éléments ne sont pas encore dans leurs formes définitives ou leurs couleurs, mais ceci
est plus un travail de goût, donc subjectif et difficile à justifier. Cependant leurs positions, leurs
nombres et leurs fonctions sont quant à elles définitives. Il reste à exposer la structure de
modification de la représentation d'une forme.
Les deux carrés verts servent à définir la zone en
pointillé, et donc la modification de leurs positions
change la zone en pointillé et les dimensions de la forme
car elles y sont liées. Le rectangle vert avec une flèche
dedans sert à changer l'échelle (i.e. modifier les
dimensions tout en conservant le même rapport hauteur
sur largeur). Et le cercle sert à faire des rotations.
24
4. Spécifications des actions de l'utilisateur
Pour avoir une idée précise de l'utilisation de l'interface proposée, et également ne pas perdre
de temps lorsque ce travail sera repris pour être finalisé (l'implémentation), je vais décrire ici
les actions sous le format UAN (User Action Notation). Ce format étant légèrement différent
d'une source à l'autre, je préciserai les éléments particuliers que j'utilise.
4.1 La palette de couleur
Les couleurs non utilisées sont renflées, c'est-à-dire qu'elles apparaissent comme plus
enfoncées que la couleur courante nommée couleur_courante. Par défaut couleur_courante vaut
'noir', et toutes les autres couleurs sont dans un renflement. Pour exprimer l'action de
renflement, nous noterons : icône de la couleur'-!!. Logiquement pour indiquer que l'on met
une couleur en avant nous noterons : icône de la couleur'!!.
Tâche : sélection d'une couleur
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône de la couleur']Mv M^ Icône de la couleur courante-!! Icône de la couleur'!! Icône outil création=couleur' Icône outil remplissage=couleur'
couleur_courante=couleur'
4.2 La modification de l'historique
Il est nécessaire d'avoir une liste des commandes exécutées pour pouvoir les annuler ou les
refaire. Cette liste se nomme historique, le numéro de la dernière action non défaite est
num_action, on ajoute une action à la position num_action par un ajoute(action). On suppose
qu'il existe un accesseur à une action de l'historique, noté action(num_action_demandée), et
que de plus une fonction défait(action), fait retourner la forme à son état précédant la
réalisation de l'action, on comprendra aussi le résultat de la fonction refaire(action). La variable
taille_historique contient le nombre total d'actions dans l'historique. Dans quelques
configurations, les outils faire et défaire ne sont pas possibles, pour le signaler, on n'affiche à
l'écran que l'ombre de ces outils. Pour ombrer un de ces outils on utilise la notation -!!, et pour
l'afficher totalement la notation !!.
25
Tâche : annuler une action
Actions de l'utilisateur Retour de l'information Changement d'état
num_action>0 :~[icône de défaire']Mv M^ Icône de refaire!!
Si num_action=0 alors :icône de défaire-!!
num_action:=num_action-1défait(action(num_action))
Tâche : refaire une action annulée
Actions de l'utilisateur Retour de l'information Changement d'état
Icône de refaire!! :~[icône de refaire']Mv M^
Si taille_historique<=num_action alors:icône de refaire-!!
num_action:=num_action+1refait(action(num_action))
4.3 Utilisation de la couleur courante
Lorsque les outils ayant un rapport avec la couleur sont utilisés, une surbrillance apparaît
autour de leurs icônes. Donc pour noter la mise en surbrillance on utilisera ! et pour retirer la
surbrillance on utilisera -!. On introduit trois variables pour décrire l'apparence du curseur,
curseur_initial, curseur_nouvelle_forme, curseur_remplissage qui serviront à informer
visuellement le mode courant de l'application. En parlant de mode, il y en a 3 correspondants
introduits ici : mode_nouvelle_forme, mode_remplissage, mode_défaut. Bien sûr le curseur
initial est curseur_initial, et le mode initial est mode_défaut.
Tâche : sélection de l'outil nouvelle forme
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône nouvelle forme]Mv M^ Icône nouvelle forme! mode=mode_nouvelle_forme
� icône' icône nouvelle forme et≠icône' en surbrillance : icône'-!
curseur=curseur_nouvelle_formeavec la couleur couleur_courante
forme_courante={}
26
Tâche : création d'une nouvelle forme
Actions de l'utilisateur Retour de l'information Changement d'état
[x',y'] dans le plan de travail etmode=mode_nouvelle_forme:~[x',y']Mv point de couleur couleur_courante
en [x',y']centre_du_cercle=[x',y']
[x'',y''] dans le plan de travail:~[x'',y'']M^ cercle de centre centre_du_cercle
passant par [x'',y'']icône de défaire!!
num_action:=num_action+1ajouter(action)taille_historique:=num_action
curseur=curseur_initial mode=mode_défaut
Tâche : sélection de l'outil remplissage
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône remplissage]Mv M^ Icône remplissage!
� icône' icône remplissage et≠icône' en surbrillance : icône'-!
curseur=curseur_remplissage avecla couleur couleur_courante
mode=mode_remplissage
Tâche : remplissage d'une forme
Actions de l'utilisateur Retour de l'information Changement d'état
[x',y'] à l'intérieur d'une formeet mode=mode_remplissage:~[x',y']Mv M^ Intérieur de la forme contenant
le point [x',y'] colorié aveccouleur_couranteicône de défaire!!
num_action:=num_action+1ajouter(action)taille_historique:=num_action
4.4 Sélection d'une forme
La sélection d'une forme introduit un nouveau curseur dont l'icône est la représentation
partielle, on le nomme curseur_sélection, et produit un mode mode_sélection. Ce mode permet
différentes actions sur une forme sélectionnée qui vont alors être détaillées ici.
27
Tâche : sélection de l'outil sélection
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône de sélection]Mv M^ Icône de sélection!
� icône' icône remplissage et≠icône' en surbrillance : icône'-!
curseur=curseur_sélection mode=mode_sélection
Tâche : sélection d'une forme
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_sélection et[x',y'] appartient au contourd'une forme forme' :~[x',y']Mv M^ Affichage de la structure de modification
de la représentation d'une formemode=mode_modification
curseur=curseur_initial forme_courante=forme'
Tâche : sélection d'une autre forme
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_modification[x',y'] appartient au contour d'uneforme forme' différente deforme_courante :~[x',y']Mv M^ Suppression de l'affichage de la
structure de modification de lareprésentation d'une forme autourde forme_courante
Affichage de la structure demodification de la représentationd'une forme autour de forme'
forme_courante=forme'mode=mode_modification
Tâche : dé-sélection d'une forme
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_modification[x',y'] n'appartient aucontour d'aucune forme :~[x',y']Mv M^ Suppression de l'affichage de la structure
de modification de la représentationd'une forme autour de forme_courante
forme_courante={}
curseur=curseur_initial mode=mode_défaut
28
4.5 Opérations de modifications de la représentation
Ces histoires de sélection, dé-sélection et re-sélection d'une forme étant réglées, voyons
maintenant les opérations du mode de modification.
Tâche : rotation d'une forme sélectionnée
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_modification :~[icône de rotation]Mv Icône de rotation!
~[x',y']M^ forme_courante ayant subie unerotation autour du centre de la formede telle manière que l'icône derotation se situe en [x'',y''] de façon àce que la distance avec [x',y'] soitminimiséeicône de défaire!!
num_action:=num_action+1ajoute(action)taille_historique:=num_action
Icône de rotation-!
Tâche : modification des dimensions d'une forme sélectionnée
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_modificationet [x',y'] est sur un carré c'de redimensionnement sansconservation d'échelle:~[x',y']Mv curseur=curseur_redimensionnement
~[x'',y'']M^ c' se situe en [x''',y'''] positioncalculée de telle manière à minimiserla distance avec [x'',y''] sans changerl'orientation de la structure demodification de la représentationd'une formeicône de défaire!!
num_action:=num_action+1ajoute(action)taille_historique:=num_action
curseur=curseur_initial
29
Tâche : modification de l'échelle d'une forme sélectionnée
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_modification :~[icône changement échelle]Mv curseur=curseur_échelle
~[x',y'] Icône de changement d'échellesituée en [x'',y''] de telle façonà minimiser la distance avec[x',y'] sans changerl'orientation de la structure demodification de lareprésentation d'une formeIcône de défaire!!
forme_courante=forme'mode=mode_modificationnum_action:=num_action+1ajoute(action)taille_historique:=num_action
curseur=curseur_initial
4.6 Utilisation des outils de déformation
Spécifions maintenant l'interaction avec les outils de déformation. On ne peut pas spécifier
les modifications de formes, c'est bien trop complexe, nous nous occuperons donc uniquement
de la sélection d'un de ces outils et du déclenchement de leurs utilisations. Lorsqu'un outil n'est
pas sélectionné, il apparaît en plein comme sur l'image quelques pages auparavant. Nous
noterons !! pour indiquer cela. Lorsqu'un outil est sélectionné, on ne voit plus que son ombre à
son emplacement, nous noterons cela -!!. Faute de mieux nous appellerons mode_découpage
l'état lorsqu'on utilise le couteau (il sert à la sélection de tronçon dans une forme, mais on ne
peut pas réutiliser le mot sélection).
Tâche : sélection de l'outil déformation
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône de déformation]Mv M^ Icône de déformation-!!
Si mode_découpage alorsIcône de découpage!!
curseur=curseur_déformation mode=mode_déformation
30
Tâche : dé-sélection de l'outil déformation
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_déformation~[icône de déformation]Mv M^
Icône de déformation!!
curseur=curseur_initial mode=mode_défaut
Tâche : utilisation de l'outil déformation
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_déformation et[x',y'] appartient au contourd'une forme : ~[x',y']Mv Mise en relief du tronçon de la
forme en cours de modification
~[x'',y''] M^ Déformation spécifiée par letronçon et des coordonnées[x',y'] et [x'',y''] tout enrespectant les contraintes du motde courbureIcône de défaire!!
num_action:=num_action+1ajoute(action)taille_historique:=num_action
Tâche : sélection de l'outil découpage
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône de découpage]Mv M^ Icône de découpage-!!
Si mode_déformation alorsIcône de déformation!!
curseur=curseur_découpage mode=mode_découpage
Tâche : dé-sélection de l'outil découpage
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_découpage~[icône de découpage]Mv M^
Icône de découpage!!
curseur=curseur_initial mode=mode_défaut
31
Tâche : ajout d'un nouveau tronçon
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_découpage et[x',y'] appartient à uneforme f' et n'est pas sur untronçon existant:~[x',y']MvM^ Affichage du tronçon sur le contour
de la forme en [x',y']Icône de défaire!!
insère_tronçon(f',[x',y'])num_action:=num_action+1ajoute(action)taille_historique:=num_action
Tâche : suppression d'un tronçon
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_découpage et [x',y']appartient à la représentationd'un tronçon sur la forme f':~[x',y'] curseur=curseur_supp_tronçon
Mv M^ Le tronçon pointé n'est plusaffichéIcône de défaire!!
supprime_tronçon(f',[x',y'])num_action:=num_action+1ajoute(action)taille_historique:=num_action
curseur=curseur_initial
4.7 Le menu circulaire
Il sert à modifier la vue de l'utilisateur sur son plan de travail. Voici les différentes actions
qui sont faites à travers ce menu et leurs spécifications. Le bouton droit de la souris sera noté
M'. Les outils non sélectionnés du menu circulaire apparaissent en transparence, notée -!!,
l'outil sélectionné lui est en pleine couleur, noté !!.
Tâche : afficher le menu circulaire
Actions de l'utilisateur Retour de l'information Changement d'état
M'v M'^ Affichage du menu circulaire mode=mode_menu_circulaire
Icône se rapprocher -!!Icône s'éloigner -!!Icône se déplacer -!!Icône quitter le menu circulaire!!
32
Tâche : se rapprocher
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_menu_circulaire :~[icône se rapprocher]MvM^ Icône se rapprocher !!
autres icônes du menu-!!zoom=zoom+1 centré sur lebouton quitter le menu circulaire
Tâche : s'éloigner
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_menu_circulaire :~[icône s'éloigner]MvM^ Icône s'éloigner !!
autres icônes du menu-!!zoom=zoom-1 centré sur lebouton quitter le menu circulaire
Tâche : s'éloigner
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_menu_circulaire :~[icône se déplacer]Mv Icône se déplacer !!
autres icônes du menu-!!
curseur=curseur_déplacement
~[x',y']M^ curseur=curseur_initial Vue centrée sur [x',y']
Tâche : quitter le menu circulaire
Actions de l'utilisateur Retour de l'information Changement d'état
mode=mode_menu_circulaire :~[icône quitter le menu circulaire]Mv Icône quitter le menu circulaire !!
autres icônes du menu-!!
M^ Menu circulaire non affiché
4.8 Définition de la zone d'impression et impression
Occupons nous de l'impression. Les 4 coins sur le plan de travail servent à définir la zone
d'impression : toutes les formes à l'intérieur seront imprimées, en réalisant le changement
d'échelle adéquat pour que l'impression se fasse sur une feuille A4, orientée paysage ou portrait
selon les dimensions de la zone d'impression. Les formes en dehors du plan de travail ne sont
pas effacées, mais elles n'apparaissent pas à l'écran et n'apparaîtront pas à l'impression.
33
Lorsqu'on déplace un coin horizontalement, on redéfinie les marges horizontales, et le coin
situé sur la même verticale se déplace également de façon à rester sur la même verticale. De
même, lorsqu'on déplace un coin verticalement, on redéfinies les marges verticale, et le coin
situé sur la même horizontale se déplace aussi de façon à rester sur la même horizontale.
Tâche : définir la zone d'impression
Actions de l'utilisateur Retour de l'information Changement d'état
~[un coin du plan de travail]Mv curseur=curseur_zone_impression
~[x',y']M^ curseur=curseur_initial Zone d'impression actualisée
Tâche : impression du plan de travail
Actions de l'utilisateur Retour de l'information Changement
d'état
~[icône imprimer]Mv M^ Affichage d'un curseur d'impression pendant letraitement de l'impression
4.9 Charger, Sauver et Quitter
Tâche : charger un dessin déjà enregistré
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône charger]Mv M^ Affichage explorateur de fichiers
Sélection d'un fichier fic Fermeture de l'explorateur
Affichage du plan de travail correspondant à ficIcône de refaire-!!Icône de défaire!!
taille_historique:=0num_action:=0couleur_courante:='noir'
Tâche : sauvegarder un dessin
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône sauver]Mv M^ Affichage explorateur de fichiers
K(nom_fic) Fermeture de l'explorateur
Affichage d'un curseur de sauvegardependant le traitement de l'enregistrementsous le nom nom_fic
Tâche : quitter l'application
Actions de l'utilisateur Retour de l'information Changement d'état
~[icône quitter]Mv M^ Fermeture de la fenêtre de l'application
34
Chapitre 3
Cahier des charges de l'interface
Le comportement de l'interface a été totalement défini, en dehors des déformations. Cesont pourtant elles qui forment le centre de l'étude. Il faut donc étudier les possibilités del'interface afin d'en tirer les propriétés nécessaires pour la représentation des formes
1. Les possibilités de déformation
Une déformation peut se réaliser sur un extremum présélectionné ou sur une zone
prédéfinie. De même, cette opération peut considérer le contour, avec une contrainte de
périmètre constant ou non, ou bien l'objet décrit par sa forme en le voyant comme une masse,
soit déformer son intérieur. Plusieurs possibilités donc de réaliser une déformation sur un objet.
1.1 Domaines d'application
1.1.1 Les domaines implicites
Les opérateurs s'appliquent sur des extrema de courbure existants. Cependant il peut être
difficile de les localiser visuellement avec précision. On va procéder en utilisant la distance
entre le curseur de l'outil et les extrema. L'extremum le plus proche de l'outil sera celui
présélectionné, et on le mettra en évidence pour que l'utilisateur sache où son outil sera
appliqué s'il l'utilise. Une méthode simple et qui par son retour visuel n'est pas contre-intuitive.
Maintenant que nous connaissons l'extremum à l'origine de la déformation, noté P, il faut
définir le domaine de la forme qui sera modifié. Le plus simple et le plus intuitif est de
considérer les deux extrema voisins de P, et de modifier la portion située entre ces deux
extrema. Ceci est ma conclusion, mais rien ne prouve qu'il est moins intuitif de faire autrement
(c'est le problème avec le caractère intuitif à maintenir dans la solution pratique, car c'est une
propriété subjective). Cela suppose aussi qu'il y ait au moins deux extrema sur la courbe, et
pose un problème pour la forme d'origine, i.e. un cercle donc aucun extremum. C'est pour le
résoudre que j'avais imaginé les domaines explicites et l'outil de sélection de tronçon.
37
1.1.2 Les domaines explicites
Du fait que l'on parcourt l'histoire d'une forme dans le sens inverse de celui utilisé par la
théorie de M. Leyton, il est nécessaire de fournir la possibilité de définir soi-même le domaine
d'utilisation. J'ai résolu cela en fournissant à l'interface un outil qui ajoute des sections sur une
forme, définissant ainsi des tronçons (ensemble des points d'une forme entre deux sections
consécutives). Cependant comment applique-t-on les opérateurs sur un morceau de courbe et
non un extrema de courbure ? C'est ici qu'il faut apporter de nouveaux éléments à la théorie
pour fournir une application pratique.
Commençons par poser le problème de la manière suivante : pourquoi définir des tronçons
sur lesquels utiliser une déformation ? Tout simplement parce qu'on souhaite modifier (et donc
déformer dans le cadre de cette étude) un morceau de forme tout en conservant des similitudes
entre le morceau original et le morceau résultat. Quelles peuvent-être ces similarités ? Au vu de
la théorie utilisée ici, une réponse pourrait-être : la distribution des extrema de courbure, soit le
mot de courbure du domaine.
Sur un domaine explicite, il faut définir un nouveau type de point qui sera l'origine de la
déformation. Cela permet de définir plus précisément la déformation sur un morceau de
courbe, et d'introduire un phénomène de déformation accentué autour de cette origine : les
effets de la déformation seront de moins en moins visibles lorsqu'on s'éloigne de l'origine. Ce
point sera le lieu d'application de l'outil de déformation. Notons que cet histoire de foyer doit
quand même conserver le mot de courbure (surtout ne pas en créer de nouveaux).
38
Figure 3.1 : sélection d'un extremum et domaine implicite
Sur cet exemple, j'ai dessiné une allure de visage humain,
mais je ne suis pas content du nez. J'aimerai en effet qu'il soit
plus en avant, mais que les lèvres suivent le mouvement. Je
désigne un tronçon à l'aide de deux marques : une sur l'arête
du nez et une sur le menton. J'attrape le nez sur le contour
(dessin en noir) et je le tire vers la gauche pour obtenir le
nouveau tronçon en rouge. On voit que la déformation est
plus importante sur le bout du nez, et qu'elle s'estompe en
rejoignant les marques.
Il est à remarquer que si le domaine explicite ne contient pas d'extremum de courbure, alors
ce n'est pas un opérateur de Leyton qui est appliqué. Cela ne pose pas de problème pour
l'utilisateur puisque les opérations sont transparentes pour lui, mais pousse le programmeur a
bien comprendre ce qu'il propose.
1.2 Vues de l'objet
L'artiste a parfois besoin de retravailler le contour d'un objet avant de s'attaquer à sa
profondeur, de s'occuper de son intérieur pour lui donner une consistance. C'est pour cela que
j'ai envisagé la distinction entre la vue d'un objet comme un contour, et comme une aire
délimitée par ce contour.
1.2.1 Comme un contour
Ces retouches du contour peuvent se faire à périmètre constant ou non. Par exemple j'aimerai
produire une animation d'un ballon avec un effet que l'on pourrait appeler Disney : je conserve
le périmètre du ballon mais je modifie son aire pour créer un effet visuel de rebond. L'œil
humain comprendra que c'est toujours le même ballon à cause de la longueur fixe du contour,
mais percevra aussi l'effet de rebond dû à une aire modifiée de telle façon que la partie proche
du sol soit aplatie. De même, pour tous les effets ou les transformations où l'on souhaite
conserver la longueur d'un tracé, ce mode de contour comme «ficelle» sera intéressant. Pour
l'analogie avec le côté ficelle, un contour sera tracé en plein lorsqu'il sera à longueur fixe.
39
Figure 3.2 : déformation sur un domaine explicite
Il ne faut cependant pas négliger la possibilité de modifier la longueur d'un contour, sinon
nous aurions des possibilités restreintes avec une longueur déterminée par la longueur
d'origine. On peut donc voir le contour comme un élastique. Par exemple, j'ai dessiné un visage
humain, et je souhaite lui allonger le nez. Rien de plus facile avec le mode élastique combiné au
système de tronçons : je démarque le nez à sa base et juste en-dessous des narines, puis je
pointe sur le nez en l'étirant. Le reste de la forme conserve son apparence, mon nez est allongé
en ayant toujours la même distribution d'extrema de courbure, et je n'ai pas fait beaucoup
d'opérations. Ce mode d'élastique est traduit visuellement par un contour en pointillé, pour
indiquer qu'il n'est pas «physique», mais que c'est une représentation abstraite, et en tant que
telle sa longueur peut varier.
1.2.2 Comme une aire
Avec cette vue de l'objet, on travaille sur une masse fixe. Ce qui se traduit dans l'application
par une aire de la forme constante. Ainsi lorsqu'on appuie sur une protusion, on s'attend à ce
que la protusion recule tout en comprimant le reste de l'objet, ceci afin de conserver l'aire. Un
mode intéressant également, et qui permet de traduire sans problèmes les bifurcations ! En
effet, j'ai fait remarquer que les bifurcations avaient une connotation plus réelle. Elles
traduisent des paramètres d'élasticité et de résistance interne du domaine.
Voir un objet comme une aire rend donc intuitif l'utilisation des bifurcations, mais
également facilement leur compréhension : «c'est ce qui arrive lorsque vous travaillez sur un
morceau de glaise».
2. Décision contextuelle de l'opération.
Nous avons vu dans la section précédente, que les possibilités de déformations engendrent
des informations quant au contexte de travail sur la forme : est-ce une ficelle, un élastique, une
masse ? Cela est d'autant plus utile qu'on dispose d'un seul outil de déformation pour
sélectionner plusieurs opérations possibles. Ce contexte aide à la décision de l'opération à
réaliser.
40
2.1 La forme est remplie : travail à aire fixée.
Comment décide-t-on qu'une forme est remplie ? Lorsque la couleur de son intérieur est
différente de la couleur de son extérieur, alors on statue que la forme est réelle. J'entend par ce
terme qu'elle a une aire fixée et qu'on la travaille dans son ensemble et qu'on ne peut pas
modifier la longueur de son contour. Remarquons que cela peut susciter une discussion si
l'intérieur de la forme est toujours de la couleur initiale. Pour résoudre ce problème, on peut
ajouter une nouvelle couleur qui n'est pas imprimable, mais sera caractérisée à l'écran par des
hachures ou autre. On comprendra alors que cette couleur signifie le vide. Ce genre de détail
devra être pris en compte par des tests sur des utilisateurs, il ne faut pas oublier que si on ne
peut énoncer quelle solution est la plus intuitive, c'est à l'utilisateur de conclure.
Comment se déroule une opération dans ce contexte ? Le bouton gauche de la souris est
enfoncé jusqu'à la fin de l'opération. Cette opération se fait au niveau d'un extremum
présélectionné. Si le sens du tracé ne correspond pas à une bifurcation en considérant
l'intérieur, alors on sélectionne la bifurcation qui prend en compte l'extérieur. Exemple :
j'applique mon curseur en M- en me dirigeant vers l'extérieur, une telle bifurcation n'existant
pas. Cependant si je vois l'extérieur comme l'intérieur délimité par ce contour, l'extremum M-
devient m+, et une bifurcation en un tel point existe dans ce sens. Ce comportement sera aussi à
tester pour le valider ou en choisir un autre, car il est difficile de voir le résultat sans
application logicielle.
Une question posée également pendant l'étude était : est-ce que cette opération peut se faire
sur un tronçon ? Je pense que oui, mais les limites seront plus vite atteintes : la contrainte d'aire
est difficile à conserver en ne modifiant qu'une partie de la forme. Cependant l'utilisateur
pourrait en avoir envie/besoin, et cela ne semble pas coûter plus de travail (considérons la
forme définie par le tronçon fermé par une ligne reliant les deux extrémités du tronçon, nous
revenons alors au cas précédent), alors pourquoi mettre de côté cette possibilité ?
41
2.2 La forme n'est pas remplie : travail sur le contour.
Dans ce contexte, nous travaillons sur le contour, il y a donc sélection d'une des
continuations (bien penser à celles qui ne sont pas dans la grammaire pour les raisons déjà
évoquées). Le bouton gauche de la souris est enfoncé jusqu'à la fin de l'opération. La trajectoire
de la souris n'est pas l'axe PISA mais en reste assez proche, de toute façon l'utilisateur n'a pas
directement conscience de cet axe de symétrie. Le sens du tracé indique le sens de la
continuation, i.e. vers l'intérieur ou vers l'extérieur.
Sur la première figure, le contexte désigne une continuation
vers l'extérieur de l'extremum M+. Sur la seconde figure, nous
avons une continuation en m- vers l'intérieur, qui est également
absente de la grammaire. Avec ces deux exemples on peut
comprendre pourquoi il faut les considérer. En effet les deux
domaines implicites en vert ne sont pas forcément parfaits du
premier coup, l'utilisateur peut vouloir les modifier afin de
changer la forme et la distribution de courbure correspondante
sans changer la disposition et le nombre des extrema de
courbure.
Cette fois-ci on conserve le même extremum que dans
l'exemple précédent, mais on fait une continuation dans l'autre
sens, jusqu'à ce qu'il y ait un point d'inflexion. L'opération
pourra alors être reprise jusqu'à ce qu'il y ait une protusion à la
place de l'indentation (il est nécessaire d'avoir deux étapes).
42
Figure 3.2 : différents contextes pour la sélection
d'une continuation
2.2.1 Le contour est plein.
Le foyer de la déformation est sur le pointeur, le domaine grandit au fur et à mesure. La
déformation se fait à périmètre constant. S'il y a eu clic gauche sur le contour, alors
l'application réalise une déformation sur le tronçon contenant le pointé cliqué et les effets de
cette déformation ne peuvent pas dépasser les limites du tronçon. S'il y eu un clic sur ou autour
d'un extremum, alors l'application réalise une déformation du contour à périmètre constant,
sans contrainte sur l'expansion du domaine d'effet.
2.2.2 Le contour est en pointillés.
Le foyer de la déformation est sur le pointeur, le domaine de déformation grandit au fur et à
mesure. La déformation se fait sans contrainte de périmètre constant. S'il y eu clic gauche sur le
contour, la déformation se fait sur la section pointée et ses effets ne peuvent pas dépasser les
limites du tronçon. S'il y a clic sur ou autour d'un extremum, la déformation du contour se fait à
périmètre constant, et pour indiquer le tronçon correspondant, on peut par exemple modifier
légèrement le ton de sa couleur.
3. Les limites d'utilisation
Les opérateurs ont une limite d'utilisation relative au mot de courbure. Il faut que l'utilisateur
soit conscient que s'il poursuit son opération de déformation, le mot de courbure va changer.
On ne peut pas l'empêcher de vouloir réaliser cette action, cependant on peut introduire un effet
de résistance de l'outil dans la zone limite : lorsque les limites sont presque atteintes, il est
beaucoup plus difficile de bouger le curseur de l'outil (i.e. à déplacement de souris égal, le
mouvement du curseur dans la zone limite est plus restreint).
On parle d'une zone limite d'utilisation. Elle n'est définie qu'en les termes «zone où la
poursuite de l'opération changera le mot de courbure». On pourrait mieux caractériser cette
zone, avec des notions de courbures ou droites. Seulement la manière la plus simple de la
caractériser serait avec la représentation de forme choisie. Donc je reste volontairement
imprécis sur cette notion, car c'est l'objectif d'un travail ultérieur.
43
Lorsque l'opération ne s'effectue pas sur un tronçon, le domaine d'application s'étend et n'est
pas contraint. À un moment de son extension il aura atteint sont maximum, soit la forme en
entier, et on peut introduire plusieurs effets dûs à cette limite atteinte. Par exemple, la forme
pourra être déplacée par la souris. De même on peut envisager des effets de déformations dues
à ce déplacement similaire à un effet Disney : par exemple l'application d'une force centrifuge
si le mouvement n'est pas rectiligne.
Cette section signifie qu'au lieu de contraindre les actions d'un utilisateur lorsque les limites
d'utilisations sont atteintes, on pourrait introduire de nouveaux effets. Ainsi toute action est
possible, et de nouvelles opérations sont permises. Reprenons l'exemple de mon ballon auquel
je souhaite appliquer une déformation pour traduire un effet d'accélération suite à un rebond. Je
commence par tracer un cercle, je le remplis de rouge (les ballons sont souvent rouges en
dessins, allez savoir pourquoi ?). Je clique dessus avec ma souris et je réalise un arc de cercle
avec mon curseur assez grand pour que le ballon commence à se déplacer. Du fait de la
simulation de la force centrifuge à partir du moment où les limites sont atteintes, mon ballon
aura exactement la forme souhaitée. Les limites d'utilisation ne me contraignent plus, elles
augmentent ma créativité tout en restant intuitif : au lieu de modifier morceau par morceau
mon ballon sans trop savoir comment je pourrais traduire l'effet recherché, je déplace
simplement le ballon à la souris, et c'est une fonction du logiciel qui se chargera d'appliquer les
effets, en utilisant les mouvements de l'utilisateur.
44
Chapitre 4
Critères recherchés dans une représentation des formes
Suite aux deux chapitres précédents, on se retrouve avec un grand nombre defonctionnalités de modification des formes. Mais quels sont les critères que doiventrespecter les modèles de description de ces formes pour pouvoir les implémenter ? Cechapitre liste les caractéristiques à évaluer pour chacun de ces modèles représentation desformes afin de statuer sur la possibilité du modèle
1. Mot de courbure.
Le mot de courbure est ici à la base des concepts de modification des formes. Il est donc
important que le calcul des extrema de courbure soit efficace. Il est possible d'effectuer un
pré-calcul pour les trouver, d'enregistrer les données, puis de les actualiser au fur et à mesure
des déformations. Ceci permet d'aider les représentations de forme où la courbure ou ses
extrema ne sont pas rapidement accessibles, i.e. ils ne sont pas des paramètres explicites du
modèle de description de cette forme ; à condition que le surcoût de mise-à-jour après les
déformations ne soit pas prohibitif.
Toujours concernant ces extrema de courbures, ils doivent être capables de piloter les
déformations. Autrement dit une variation dans leurs intensités ou leurs positions peuvent
conduire à une opération de déformation. Il doit exister un lien entre le déplacement d'un point
du contour et de la courbure en ce point.
2. Le contrôle de la localité
Il doit être possible de travailler sur un domaine particulier de la courbe, et uniquement sur
ce domaine : les modifications peuvent être locales et on doit pouvoir contenir les effets de
déformation. S'il est impossible de fixer d'une manière ou d'une autre une partie de la courbe
pour en modifier une autre pour une représentation, alors on peut l'abandonner car elle ne
permet pas de réaliser les opérations de base. La localisation de la modification doit rester
47
cohérente avec les hypothèses liées aux opérateurs : la courbe doit rester deux fois
continument dérivable.
En parallèle, la représentation doit permettre de propager l'intervalle de déformation, par
exemple lorsque les limites de l'opération ont été atteintes. Il doit donc exister non seulement
un moyen de définir un intervalle, mais en plus de pouvoir contrôler son expansion.
Les opérations de déformations doivent se faire en multi-résolution, c'est-à-dire à la
précision voulue. Par exemple sur la vue courante je suis capable de modifier ma forme
jusqu'au maximum perceptible par l'œil humain. Mais lorsque je zoome sur la zone de travail,
je dois être maintenant capable de travailler à une échelle encore plus petite, soit être encore
plus précis.
3. La possibilité de déformation de type flexion
Il a été rapporté par une étude sur un panel d'utilisateurs que la flexion était un concept bien
appréhendé pourvu qu'une structure similaire à un squelette se trouve à l'intérieur d'une forme
pour réaliser une telle opération.
Par exemple, j'ai réalisé une ébauche de bras
humain, avec les proportions souhaitées. Mais
maintenant je voudrais plier l'avant-bras, car c'était
plus facile de respecter les proportions en le traçant
déplié. Lorsqu'à l'intérieur de ce bras se trouve la
moitié des axes PISA (ici seulement les axes se
terminant aux extrema positifs) ; les utilisateurs ont
mis la souris sur cet axe, et on fait décrire un arc de
cercle au curseur pour obtenir la figure de droite.
Donc pour permettre la flexion, il est nécessaire d'avoir accès à un peudo-squelette de forme.
Soit de définir ce que nous avons appelé une structure fil de fer. Il apparaîtrait que comme
dans l'exemple suivant, la moitié des axes PISA -ceux sur les extrema positifs- connectés entre
eux suffisent. Il serait alors bon de trouver une représentation dont la structure donne cette
matrice, et dont les modifications de la matrice réalisent des flexions à volume constant.
48
4. Opérations à aire constante
Comme pour la flexion présentée dans la section précédente, les bifurcations sont des
opérations de déformation qui nécessitent une conservation de l'aire des formes. Cette
contrainte sert à assurer la bonne compréhension des bifurcations et facilite leurs utilisations.
Ainsi un nouveau critère est la possibilité de déformer à aire constante.
C'est un critère assez complexe. En effet les représentations habituelles des formes en
informatique n'ont pas pour objectif de conserver l'aire d'une courbe fermée. Il y aura alors un
traitement supplémentaire des données pour maintenir l'aire constante ; et le surcoût induit
devra être acceptable pour permettre un travail en temps réel.
Cependant, un simple moyen qui calcule l'aire et vérifier qu'elle reste constante n'est pas
acceptable. Le critère de l'aire constante n'est pas une contrainte qu'il faudrait seulement
vérifier, mais c'est une contrainte qui va guider les opérations de bifurcations. En effet, des
études ont déjà étés faites sur les opérateurs de M. Leyton avec les courbes de Bézier pour
modèle. Mais ces études ont fait apparaître que trop de paramètres entraient en jeu, et que pour
définir un comportement, avoir recours à une contrainte d'aire n'était pas un luxe. Donc, cette
contrainte d'aire devra induire un nouveau concept qui définira entièrement les opérations de
bifurcations, i.e. avec aucun paramètre indéterminé.
5. Opérations à périmètre constant
Dans le chapitre précédent, j'ai parlé des différents types d'opérations et de la nécessité
d'avoir des déformations qui conservent la longueur d'un contour. Il faut que la représentation
des formes offre la possibilité de déformer à périmètre constant. De même que pour le
critère précédent, les modèles usuels de courbes n'ont pas été construits pour pouvoir le
satisfaire.
Il ne s'agira pas d'uniquement de contrôler le périmètre d'un contour, mais de simuler des
effets de raideur et de résistance. Par exemple, si le travail se fait sur un domaine défini par
l'utilisateur, le contour pourra être plus raide aux extrémités de ce domaine. Par contre, la
déformation sera à son effet maximum à la position du curseur, ce qui se passe lorsqu'on exerce
une pression sur un lacet.
49
Chapitre 5
Analyse des modèles de description de formes
Dans ce chapitre je vais confronter 3 types de modèles de description de courbes etsurfaces aux critères précédents : les courbes de Bézier, les clothoïdes et les courbesimplicites. De cette confrontation ressortira la direction à prendre pour l'implémentation enremarquant les points forts de certains modèles et quels sont ceux qui satisfont le mieuxcertains critères.
1. Les courbes de Bézier et les NURBS.
Pourquoi un modèle aussi compliqué des courbes de Bézier ? Du fait de sa capacité à
permettre un accroissement de la complexité des formes décrites, il est intéressant de pouvoir
rajouter des points de contrôle pour avoir une plus grande précision et permettre à l'utilisateur
d'atteindre des formes plus proches de ce qu'il souhaite. Or, les B-Spline sont plus adaptées
pour être mises bout à bout. Cependant, le modèle de Bézier ne permet pas de représenter
exactement un cercle. Voilà qui pose un sérieux problème quand la forme la plus simple que
l'on peut être amené à représenter, conformément aux opérateurs de Leyton, est un cercle ; d'où
les NURBS : Non-Uniform Rational B-Spline. C'est en effet les seules courbes polynomiales
par morceaux capables de décrire exactement un cercle.
Commençons par la courbure. Calculer la courbure en un point quelconque d'une courbe
NURBS est un véritable fléau, même les théorèmes qui donnent une formule pour la calculer
en un point de contrôle font des suppositions sur les poids et sont également horribles à
calculer. Calculer une courbure en un point s'appuie sur un algorithme, et pour les extrema il
faut un algorithme supplémentaire car il n'y a pas de facilités dans ce modèle pour les obtenir
autrement.
Donc du point de vue des extrema de courbure, les NURBS prennent un mauvais départ. De
plus, les formules adaptées à cette structure ne sont pas aisément mises à jour à partir
d'informations déjà calculées. On pourrait se dire que mettre les points de contrôle sur les
51
extrema serait une bonne idée, mais du fait que l'on s'est éloigné du modèle simple des courbes
de Bézier, les courbes ne passent pas par les points de contrôle. Et il n'y a pas de lient entre la
position des points de contrôle et celle des extrema de courbure. Donc il ne faut rien espérer
non plus pour pouvoir piloter facilement la courbe avec les extrema de courbure.
Par contre pour le contrôle de la localité, cela se présente mieux. On peut par exemple fixer
des points de contrôle, ce qui permet de définir un domaine pour les déformations. Si ce
domaine ne s'ajuste pas parfaitement, on peut toujours rajouter des points de contrôles pour
avoir des nœuds aux extrémités du domaine. De même pour l'expansion de ce domaine.
Cependant il faudra alors introduire une opération de «nettoyage» des nœuds et points de
contrôles superflus. Ce qui pose la question de la conservation du mot de courbure après la
suppression d'un point de contrôle, car une telle suppression s'accompagne en général d'un
changement de forme de la courbe.
Les opérations à aire constante se font, pas facilement mais se font quand même. C'est ce
que j'ai lu dans la thèse de Jean-Philippe Pernot. Cependant, toutes les opérations se font avec
un trop grand nombre de paramètres et de contraintes indéterminées. Or il est hors de question
que l'utilisateur rentre de tels paramètres numériques, et ceci ajouté avec le problème sur les
extrema de courbure exclut ce genre de modèle. Du moins tel qu'il est : il est possible que dans
le futur on décline les NURBS en en modèle mieux adapté à ce problème, mais pour l'instant
il présente un nombre de difficultés important.
2. Les clothoïdes approximées par des B-splines.
Après un tel échec du point de vue du pilotage des formes par leurs courbures, il est justifié
de s'intéresser aux clothoïdes. Pour résumer, les clothoïdes sont des courbes dont la courbure
est une fonction affine par morceau de l'abscisse curviligne. Une représentation approchée par
des B-splines permet de disposer de courbes dont la courbure est une fonction affine par
morceaux de l'abscisse curviligne. Ceci valide entièrement le premier critère sur la courbure :
� le calcul des extrema est efficace car la courbure est entièrement donnée, et en plus elle est
affine par morceaux. Le seul cas qui soit plus simple que ça est une courbure constante !
� la représentation approchée par une B-spline confère les propriétés de ces dernières. Les
déplacements des points de contrôle engendrent directement des déformations dont l'impact
52
peut être aisément évalué sur la distribution de courbure, puisque la courbe est définie par sa
courbure.
Pour la localité, comme les clothoïdes sont définies avec l'abscisse curviligne et approchées
par des B-spline, il n'y aura pas de problème pour isoler un domaine de la courbe : c'est un
intervalle d'abscisse curviligne. De même pour la propagation, la notion d'intervalle de travail
colle parfaitement à une représentation approchée des clothoïdes.
Les opérations à périmètre constant pourront également utiliser cette propriété, car la
longueur d'un tracé est la longueur de l'intervalle de son abscisse curviligne. Les effets pourront
être aisément accentués à l'approche du point d'application.
Les seuls points à méditer sont le calcul de la structure fil de fer et les opérations à aire
constante. Ce modèle n'apporte pas de caractéristiques particulières pour construire la matrice
de fer, et il n'y a pas de lien évident entre cette structure et la courbe en elle-même. De même,
l'aire n'est pas une quantité rapidement accessible à partir d'une clothoïde approchée par une B-
spline, et sa donnée ne détermine aucun élément de la courbe. C'est ici que ce modèle peine :
remarquablement adaptée aux déformations de contours, mais pas pour les aires car cela ne
fait pas partie des propriétés standard des B-splines.
3. Les courbes implicites.
Il était impossible devant la forte ressemblance entre les axes PISA et les squelettes des
courbes implicites d'ignorer ce modèle. En effet le squelette d'une courbe est l'ensemble des
centre des cercles tangents maximaux intérieurs. Ce squelette est considéré comme la source
géométrique de potentiel. La courbe est définie par l'ensemble des points du plan tel que la
convolution entre cette source de potentiel et une fonction de champs est égale à une valeur
fixée, appelée iso-valeur. Comme analogie, on peut considérer que le squelette est une structure
de métal incandescent alimenté électriquement, et la courbe est l'ensemble des points ayant la
même luminosité.
Le squelette d'une courbe implicite forme un ensemble connexe qui corresponds tout à fait à
notre concept de fil de fer. Les opérations de flexions seront donc aisément applicables grâce à
ce modèle. De plus ce squelette est un descripteur de forme : il contient toutes les information
de l'objet. Ainsi cette structure de fil de fer permet de construire l'ensemble de la forme.
53
Si la fonction de champ est telle que la valeur scalaire des champs émis par le squelette est
proportionnel à la distance au squelette, les opérations à aire constante sont alors envisageables.
Ce modèle est très apprécié pour sa capacité à simuler des interactions sur des objets physiques,
comme les chocs, les pressions et les étirements. Je ne dis pas que les opérations à aire
constante seront faciles, mais ce modèle dispose des bases nécessaires pour les rendre
réalisables.
De même, le contrôle de la localité n'est pas une caractéristique première de ce modèle.
Mais en considérant qu'une partie de la courbe est le résultat d'un morceau de squelette (en
réalité, c'est un peu plus compliqué que cela, mais l'idée reste la même), on peut restreindre les
effets des déformations, comme les étendre continument. Cependant cette expansion pose un
problème : comment assurer la conservation du mot de courbure ?
Du fait de la définition de la courbe, ce modèle n'est cependant pas fait pour calculer
facilement les extrema de courbures et encore moins pour piloter une forme par ces extrema.
Ce modèle valide pourtant certains critères que les précédents ne pouvaient valider. Il serait
donc intéressant d'envisager un modèle hybride pour réunir tous les critères.
54
CONCLUSION
Les théories de M. Leyton sont de plus en plus étudiées, notamment celles concernant les
représentations des formes. Il en existe une qui réduit la compréhension des formes à la
distributions de leurs extrema de courbures. Elle n'a encore jamais fait l'objet d'une application
logicielle, mais cette théorie est validée par des études sur un panel d'utilisateurs potentiels,
comme celle réalisée dans ce travail. De plus, cette théorie est remarquable par son côté
intuitif : elle décrit exactement le cheminement de pensée de l'Homme, et réalise les opérations
attendues par son intuition.
Pour pouvoir mener à bien le développement logiciel d'une telle théorie, compte-tenu de sa
forte composante intuitive, il était primordial de réaliser une étude IHM pour savoir
précisément ce qui est attendu de l'utilisateur et comment lui offrir les possibilités de réaliser
ses désirs dans une application de dessin par ordinateur. Cette étude fut un peu trop longue,
mais les résultats obtenus nous assurent de ne pas s'éloigner des besoins de l'utilisateur ; pour
avoir non seulement une application des théorie de M. Leyton, mais en plus un logiciel utile et
innovant.
Après une analyse des possibilités de la théorie et des critères que doit vérifier le modèle de
description des formes à utiliser pour cette solution ; on se rend compte qu'aucun modèle
existant permet de vérifier tous ces critères. Cependant un modèle hybride entre les clothoïdes
approchées par les B-splines et les courbes implicites permettrait de valider tous les critères
requis.
Il s'agit donc à présent de construire un tel modèle, de bâtir une application dessus, et
d'apporter enfin un logiciel de dessin 2D intuitif. Ce qui constituera le travail qui m'a été
assigné pour le stage de deuxième année.
57
BIBLIOGRAPHIE :
� Fully Free Form Deformation Features for Aesthetic and Engineering Designs , thèse
présentée en 2004 par Jean-Philippe Pernot
� Towards semantic modelling of free-form mechanical products , thèse présentée en 2006 par
Vincent Cheutet
� CONSTRAINT MODELING FOR CURVES AND SURFACES IN CAGD: A SURVEY , article
publiée en 2007 dans le journal International Journal of Shape Modeling par Vincent
Cheutet, Marc Daniel, Stéphanie Hahmann, Raphael La Greca, Jean-Claude Léon, Robert
Maculet, David Menegaux, Basile Sauvage
� Sketching Piecewise Clothoid Curve, article soumis à EUROGRAPHICS Workshop on
Sketch-Based Interfaces and Modeling par C. Alvarado and M.- P. Cani en 2008
� Introduction to Implicit Surfaces, livre de Jules Bloomenthal en 1997
59