RAPPORT DE TER 2008-2009 - ensiwiki.ensimag.fr · à l'état d'un cercle par l'application d'une...

59
ÉCOLE NATIONALE SUPÉRIEURE D'INFORMATIQUE ET DE MATHÉMATIQUES APPLIQUÉES DE GRENOBLE RAPPORT DE TER 2008-2009 par 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

Transcript of RAPPORT DE TER 2008-2009 - ensiwiki.ensimag.fr · à l'état d'un cercle par l'application d'une...

É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-

14

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

35

36

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

45

46

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

50

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

55

56

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

58

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