Méthodes de référence pour les Figures Scheme DR. GEOFigure Scheme de DR. GEOQuelques exemples

Quelques exemples

En lui même Scheme est un langage de très haut niveau, lorsqu'une figure est définie dans ce langage, nous disposons également de toute sa puissance pour par exemple définir récursivement telle partie de la figure, ou bien pour placer aléatoirement certains objets de telle sorte qu'à chaque ouverture de la figure, celle-ci est légèrement différente. Bref, les FSD sont libérées du carcan de l'interface graphique tout en étant renforcées du langage Scheme. Un FSD est donc un fichier d'extension .scm créé à l'aide d'un éditeur de texte, il est ensuite ouvert dans DR. GEO à l'aide de la commande Fichier->Évaluer.

Commençons par étudier un exemple simple de FSD :

(nouvelle-figure "Ma figure")

C'est la plus petite FSD que nous puissions définir. Lors de son chargement dans DR. GEO, celle-ci va simplement créer une nouvelle figure vide nommée "Ma figure". Nous pourrions multiplier les commandes (nouvelle-figure "Ma figure") autant de fois que nous le souhaitons, autant de figures seraient créées.

Abordons un deuxième exemple :

(nouvelle-figure "Ma figure")
(soit Point "A" libre 1.2 -2)

Cette FSD définie une figure avec un point libre A de coordonnées initiales (1,2 ; -2). Comme nous pouvons le voir la syntaxe de définition d'un objet géométrique est relativement agréable, d'autant plus qu'elle est exprimée dans une langue maternelle. Intéressons nous de plus près à la deuxième instruction, en effet celle-ci suit une syntaxe qui est commune à toutes les commandes de définition d'objet. Ce type de commande se décompose comme suit :

  1. Elle commence toujours par le mot-clé soit, il indique que nous souhaitons définir un nouvel objet.
  2. Il est immédiatement suivi de la catégorie de l'objet, ici Point.
  3. Le nom de l'objet vient ensuite, A, il doit toujours être entouré de ". Si nous ne souhaitons pas nommer l'objet, il faut tout de même donner un nom vide comme suit: "".
  4. Enfin, nous précisons le type de l'objet - le type de point dans notre exemple - ici libre. Cela signifie que le point A est libre.
  5. Le type de l'objet est suivi d'une liste d'arguments spécifiques. Dans notre exemple cette liste est composée de deux nombres, les coordonnées du point libre A.

Poursuivons avec un troisième exemple :

(define (triangle p1 p2 p3)
  (Segment "" extrémités p1 p2)
  (Segment "" extrémités p2 p3)
  (Segment "" extrémités p1 p3))

(define (hasard)
  (- 8 (* 16 (random:uniform))))

(nouvelle-figure "Ma figure")

(soit Point "A" libre (hasard) 0)
(soit Point "B" libre 5 0)
(soit Point "C" libre (hasard) 5)

(triangle A B C)

Cet exemple est particulièrement intéressant, il nous montre trois choses importantes :

  1. L'introduction de construction de plus haut niveau, non prévue au départ par DR. GEO. Ici nous avons défini la fonction triangle qui, à partir de trois points, construit le triangle passant par ces trois points. Nous pouvons comparer ceci avec les macro-constructions mais avec un degré de liberté beaucoup plus important.
  2. La définition de fonctions associées, ici nous avons défini la fonction hasard qui retourne un nombre décimal compris entre -8 et 8. Nous utilisons cette fonction pour placer au hasard certains points de notre figure, ainsi à chaque ouverture la figure est légèrement différente.
  3. En fait l'utilisation du mot clé soit n'est pas obligatoire, nous l'utilisons lorsque nous souhaitons garder une référence de l'objet créé. Par exemple dans la fonction triangle, nous ne gardons pas de références des segments créés, en revanche lorsque nous définissons nos points A, B et C nous avons besoin de garder une référence, ces références ont le même nom9 sans guillemet : A, B et C. Dans la suite nous appellerons symbole ces références, c'est la terminologie exacte du langage Scheme. Ainsi, lors de l'appel de la fonction triangle, nous passons en paramètre les symboles A, B et C qui sont utilisés pour définir nos trois segments.

Noter que lors de la définition des segments, nous ne donnons pas de nom, dans ce cas DR. GEO va attribuer un nom par défaut défini à partir du nom des extrémités. Nos trois segments auront donc comme nom [AB], [BC] et [AC].

Pour clore cette section, voici un dernier exemple :

(soit Point "A" libre 1 0)
(soit Point "B" libre 5 0)
(soit Droite "d1" 2points A B)

(envoi A couleur jaune)
(envoi A forme rond)
(envoi A taille large)
(envoi B masquer)
(envoi d1 épaisseur tiret)

Les trois premières commandes créent deux points et une droite. La partie qui nous intéresse plus particulièrement est la série de commande envoi. Cette commande permet de communiquer avec un objet dont nous avons gardé un symbole, ici nous avons les symboles A, B et d1. Elle consiste à envoyer un message à un objet, son premier argument est l'objet avec lequel nous communiquons, le deuxième argument le message, le troisième et les suivants sont déterminés par la nature du message. Par exemple (envoi A couleur jaune) envoie le message couleur avec comme paramètre jaune, le point A est peint en jaune. Il est assez facile de comprendre le sens des autres commandes envoi. Elles seront expliquées dans la section suivante.

Nous avons terminé notre petite visite guidée des Figure Scheme Dr. Geo. Dans les sections suivantes nous exposons l'ensemble des commandes disponibles pour définir des FSD.


Des commentaires, des remarques ?
Vous êtes volontaire pour écrire des parties du manuel ?
-> Contactez Hilaire Fernandes at OFSET ou rejoignez la liste de diffusion de DR. GEO.

Méthodes de référence pour les Figures Scheme DR. GEOFigure Scheme de DR. GEOQuelques exemples