DrGeo - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

DrGeo
Développeur Hilaire Fernandes
Dernière version 1.0 (31 12 2005) [+/−]
Environnement Gnome
Type Géométrie dynamique
Licence GNU GPL
Site Web http://www.ofset.org/drgeo

DrGeo est un logiciel libre de géométrie dynamique créé par Hilaire Fernandes sur plateforme Gnu/Linux.

Formats de fichier

DrGeo a son propre format de fichier, sans extension. Il peut exporter en PNG, en PostScript, en LaTeX ou en FlyDraw.

Langage de script

DrGeo permet de créer des objets par un langage de script, qui n'est pas propre à DrGeo puisqu'il s'agit de Scheme.

Dans la figure

Après avoir créé une variable numérique, par exemple 3, en créant un objet de type script dans la figure, et en cliquant sur le nombre, on crée un script accessible dans la figure, et admettant en entrée la variable numérique, qui s'appelle automatiquement a1. Pour implémenter la fonction carré, on peut mettre dans le script

      (define x (getValue a1))      (* x x)      

La variable x est donc affectée par la variable numérique a1 puis son carré est calculé (c'est le produit de x par lui-même) et automatiquement affiché comme une variable numérique, dans l'exemple présent, on verra donc un 9 (puisque 32 = 9). Ensuite on peut créer une macro avec le 3 comme objet initial et le 9 comme objet final, qui implémente la fonction carré comme objet DrGeo.

On peut également obtenir des variables numériques par sélection d'objets géométriques et lecture de leurs grandeurs (longueur, angle, coordonnées etc). Par exemple, si lors de la création d'un script, on sélectionne un point, l'argument a1 sera ce point et pas un nombre. Pour définir une transformation par un script, il faut créer deux objets par script (un pour l'abscisse et un pour l'ordonnée) parce que la sortie d'une fonction Scheme est nécessairement un nombre. Par exemple, comme (x + iy)2 = x2y2 + i(2xy), le carré d'un nombre complexe est donné par deux scripts, chacun ayant pour objet d'entrée, le point préalablement créé.

Pour la partie réelle:

      (define x (car (getCoordinates a1)))      (define y (cadr (getCoordinates a1)))      (- (* x x) (* y y))      

et pour la partie imaginaire:

      (define x (car (getCoordinates a1)))      (define y (cadr (getCoordinates a1)))      (* 2 x y)      

Une fois ces deux nombres présents à l'écran, on peut créer un point par ses coordonnées, en lui donnant bien entendu pour coordonnées les deux nombres trouvés, et définir une macro pour la transformation ainsi matérialisée (en choisissant le premier point pour objet initial, et le point défini par coordonnées comme objet final).

création de figure par script

Lorsqu'un script est inséré dans la figure, la valeur numérique retournée par celui-ci est affichée, et peut être réutilisée dans la figure. Cependant l'avantage essentiel d'un langage de script est la possibilité qu'il offre de construire des figures complexes. Pour pouvoir réaliser cela, il est nécessaire de décrire la construction en langage Scheme dans un fichier texte ayant l'extension scm. DrGeo va alors interpréter ce fichier, en construisant la figure.

Par exemple, la version récursive du triangle de Sierpinski dynamique (A, B et C sont libres) est obtenue avec le script suivant:

      (new-figure "Sierpinski")      (define (sierpin p1 p2 p3 n)             (let* (                   (p4 (Point "" milieu-2pts p2 p1))          (p5 (Point "" milieu-2pts p2 p3))          (p6 (Point "" milieu-2pts p3 p1))                 (q1 (Polygone "" npoints p1 p4 p6))          (q2 (Polygone "" npoints p2 p4 p5))          (q3 (Polygone "" npoints p3 p5 p6)))                          (if (> n 1)          (begin          (envoi q1 masquer)          (envoi q2 masquer)          (envoi q3 masquer)))                     (envoi p4 masquer)          (envoi p5 masquer)          (envoi p6 masquer)                 (if (> n 0)          (begin            (sierpin p1 p4 p6 (- n 1))           (sierpin p2 p4 p5 (- n 1))           (sierpin p3 p5 p6 (- n 1))))))             (soit Point "A" free -3 -1)      (soit  Point "B" free 3 -1)      (soit Point "C" free 0 3)             (sierpin A B C 5)      

Cette version récursive est à comparer avec la version itérative de Kig et avec le CarScript, lui aussi itératif.

Géométrie dynamique
Logiciels
C.a.R. - Cabri Géomètre - GeoGebra - CaRMetal - DrGeo - Kig - GéoPlan - GéoSpace - GEONExT - TracenPoche
Cette boîte : v · d · m
Page générée en 0.077 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise