• Aucun résultat trouvé

5.2 Principales fonctionnalites d'animation des gures

5.2.2 Deformation de la gure

Nous decrivons dans les paragraphes qui suivent les aspects lies a la deformation de la gure. Nous commencons par la fonctionnalite d'animation, c'est-a-dire la fonc-tionnalite qui permet de deformer la gure, puis nous examinons le traitement des cas degeneres, et en n nous decrivons notre approche pour actualiser les points demi-instancies.

Fonctionnalite d'animation

Rappelons que la fonctionnalite d'animation, qui permet a tout moment d'animer les gures construites par manipulation directe, est la fonctionnalite la plus importante dans un systeme de geometrie dynamique. Cette importance est liee au fait qu'elle n'a pas d'equivalent dans l'univers du papier/crayon. Sa mise en uvre dans les micro-mondes de geometrie a donne a ceux-ci leurs lettres de noblesse en faisant de ces der-niers bien plus qu'une simple transposition informatique de l'univers du papier/crayon. Elle donne un acces aux elements du dessin qui peuvent ^etre saisis et deplaces, tout en conservant les relations geometriques speci ees. Les objets d'une gure qu'il est pos-sible de deplacer sont les points instancies et les points demi-instancies. Les premiers peuvent ^etre deplaces d'une maniere quelconque, alors que les derniers sont assujettis a appartenir a un objet support. Cette saisie et ce deplacement se font a l'aide de la souris.

Dans Cabri-Geometre, le mode operatoire a suivre pour deplacer un objet de base consiste a selectionner ce dernier par un clic du bouton gauche de la souris et a deplacer la souris tout en maintenant le bouton enfonce. A chaque nouvelle position, la gure est e acee, puis les parametres des objets de cette derniere sont recalcules, et en n la gure est reachee en temps reel. En rel^achant le bouton, l'utilisateur manifeste son desir de ne plus deplacer l'objet precedemment saisi.

dif-84 De nition des langages d'interface de GDRev

ference porte sur le fait qu'a la suite de la selection d'un point et au deplacement de celui-ci par un mouvement de la souris en maintenant le bouton gauche enfonce, le rel^achement de ce dernier ne signi e pas la n de l'animation du point. La marque de n est obtenue par un clic du bouton droit de la souris, qui precise ainsi la derniere position du point selectionne.

Il est aussi possible dans GDRev de deplacer un point d'une maniere discrete, c'est-a-dire de deplacer un point d'une position a une autre sans passer par les positions intermediaires. Pour proceder a un tel deplacement, il sut de designer le point a animer par un clic du bouton gauche de la souris, puis de designer la nouvelle position du point par un autre clic du bouton gauche de la souris. L'inter^et de tels deplacements est d'eviter d'eventuels deplacements trop lents dans un environnement declaratif, au detriment, nous l'admettons, du principe de continuite des interfaces de manipulation directe.

Cas de degenerescence

Au cours de la construction de la gure ou de la deformation de celle-ci, il peut arriver que les speci cations deviennent inconsistantes, c'est-a-dire qu'il devient impos-sible de determinerles parametres reels d'un objet veri ant les proprietes geometriques imposees par l'utilisateur etant donne les coordonnees des objets de base. Un exemple d'une telle inconsistance est la construction du point d'intersection de deux droites distinctes paralleles.

L'approche suivie dans Cabri-Geometre est d'autoriser de telles de nitions et de telles deformations de la gure. Les objets en cause ne sont alors plus aches ainsi que leurs descendants, mais ils existent en tant que tels dans la de nition de la gure. Si a la suite d'autres deformations ces objets peuvent ^etre determines, alors ils retrouvent leur representation graphique.

Notre approche est di erente. Elle s'inspire du caractere logique d'une speci cation, et a l'instar de Prolog, conduit a un echec lors d'une inconsistance. Cet echec est signale a l'utilisateur par un message.

Actualisation des points demi-instancies

A l'occasion de la deformation de la gure, il se pose aussi le probleme de la reconstruction des points demi-instancies. Le probleme est que de telles points ne sont

5.2 Principales fonctionnalites d'animation des gures 85

pas susamment contraints pour ^etre reconstruits.

L'approche suivie dans Cabri-Geometre est de faire dependre de tels points non seulement de l'objet support, mais aussi de proprietes par defaut resultant de la construction graphique du point sur l'objet. Ces proprietes n'ont pas de caractere purement geometrique. Elles ont ete concues en prenant en compte d'une part le prin-cipe de continuite adopte dans la de nition du systeme, et d'autre part le moindre co^ut des calculs qu'ils impliquent. La gure 5.2 illustre les proprietes utilisees pour un point sur droite, sur demi-droite, sur segment et sur cercle.

2 d2 d1 d 1 d d α (1) (2) (3) (4) Légende : Point demi-instancié : Point instancié ou construit

Fig. 5.2 { Proprietes conservees lors de l'actualisation des points demi-instancies.

Dans le cas:

86 De nition des langages d'interface de GDRev

{ d'une demi-droite, illustre par la gure 5.2 (2), le rapport des distances d1 d2 est constant.

{ d'un segment, illustre par la gure 5.2 (3), le rapport des distances d1 d2 est constant.

{ d'un cercle, illustre par la gure 5.2 (4), l'angle forme entre la demi-droite horizontale d'extremite le centre du cercle et la demi-droite d'extremite le centre du cercle et passant par le point demi-instancie est constant.

L'approche que nous avons suivie est celle retenue dans Cabri-Geometre dans la mesure ou elle nous semble naturelle et d'un co^ut negligeable vis-a-vis des animations qu'elle permet.

5.3 Principales fonctionnalites de construction des