Figures MetaPost avec GIAC/XCAS

pfgiac est un script PERL qui s'exécute sous LINUX. Il produit des figures au format MetaPost, figures calculées par GIAC/XCAS.

Version actuelle : 1.0 (6 juillet 2011) - pfgiac.tar.gz

Courbe de joukowski
Courbe de Joukovski [W] [PDF]

Avertissement

Ce script est en cours de développement, il est fourni sans garantie de bon fonctionnement. La documentation est très certainement imprécise, n'hésitez pas à me pour me signaler un bug ou obtenir des compléments d'informations, j'en profiterai pour affiner la documentation.

Objectif

C'est d'aller vite dans le calcul de certaines figures de géométrie plane... La syntaxe et les possibilités de Giac/Xcas permettent cela : il suffit d'écrire, à la suite, les instructions définissant les objets de l'historique de la figure. Ensuite, les éléments étant récupérés, il ne reste plus qu'à utiliser MetaPost pour construire la figure. L'élaboration d'une figure est ainsi décomposée en deux phases bien séparées : le calcul des éléments par giac et leur représentation par MetaPost.

Téléchargement et installation

Dans l'archive vous trouverez le script pfgiac à placer dans un répertoire accessible par la variable PATH de votre shell ainsi que le fichier svgnames.mp à placer dans votre répertoire texmf préféré (ou à laisser dans votre répertoire de travail).

Pour s'exécuter pfgiac à besoin des modules PERL suivants:

Ces modules sont disponibles dans les dépôts de toutes les distributions, sinon ils sont, bien sûr, dans CPAN.

Si vous souhaitez construire des animations le programme pdftk sera nécessaire, lui aussi se trouve dans les dépôts de toutes les bonnes distributions.

Exemples

Des exemples sont présentés dans la base MetaPost, quelques sources sont dans l'archive.1 Comme vous le constaterez, pfgiac utilise des fichiers texte d'un genre un peu particulier...

Fichiers Wanda

Il fallait leur donner un nom... Ce sont des fichiers sectionnés par des chaînes de la forme %@XXXX: en tête de ligne. À la lecture, ces éléments sont interprétés de la façon suivante:

pfgiac ne prend en compte que les blocs GIAC, STYLE, MP et le paramètre ANIMATION d'un fichier Wanda, tout le reste est ignoré, mais peut servir à autre chose, dans un autre contexte...

Utilisation

Une fois les fichiers installés, il est temps d'essayer...

$> pfgiac napoleon.w

Théorème de Napoléon
Théorème de Napoléon [W] [PDF]


Dans le répertoire de travail vous trouverez alors un certain nombre de fichiers :

Les deux premiers fichiers seront effacés et le troisième ne sera pas créé en fixant l'option -clean.

$> pfgiac -clean napoleon.w

La compilation du fichier metapost n'aura pas lieu si vous fixez l'option -nopdf.

$> pfgiac -nopdf napoleon.w

Bloc GIAC

Le contenu d'un bloc GIAC est exécuté, en l'état, par... giac, sa syntaxe est donc celle de xcas. Après exécution pfgiac va en scanner la sortie pour identifier les objets graphiques.

Bloc STYLE

Dans ce bloc sont définies toutes les options destinées à préciser le mode de représentation des objets capturés par pfgiac. Ce bloc est lu ligne par ligne. Une ligne est significative si elle commence par la séquence global: ou par le nom d'un objet ou une séquence de noms séparés par une virgule suivi de deux points (:). À la suite, les options sont présentées sous la forme clé=valeur séparées par des espaces (mais sans espaces intérieurs).

Le champ global

Il sert à définir des options globales ou des options par défaut.

unite

L'unité par défaut est 1cm, vous pouvez le modifier:

global: unite=1.5cm

cadre

Par défaut la figure est construite dans un cadre [-10,-10,10,10]3 dans l'unité choisie; c'est utile pour la représentation des droites, elles sont coupées sur les bordures du cadre. Pour modifier les dimensions du cadre:

global: cadre=[-4,-2,3,5]

grille

Une grille de pas 1 unité est tracée par défaut sur le cadre (pour permettre des ajustements), vous pouvez la désactiver:

global: grille=0

Bloc MP

L'usage des blocs MP est peu développé encore, l'objectif est d'ajouter la possibilité d'insérer des instructions MetaPost de façon à enrichir la figure.

Paramètre ANIMATION

Sa présence provoque la construction d'une animation, sa valeur spécifie la boucle de construction des images.

Par exemple, la mention suivante :

%@ANIMATION:x,0,10,2

provoquera la contruction de 10 images au format PDF obtenues en remplaçant la chaîne $!x! dans le bloc GIAC par 10 valeurs uniformément réparties entre 0 et 2.

Les images PDF sont alors concaténées en un seul fichier PDF à l'aide de pdftk. Vous pourrez alors visualiser l'animation en faisant défiler les pages; le fichier PDF obtenu étant assez lourd, un moyen d'alléger la chose est de le convertir dans le format SWF à l'aide de pdf2swf.

Voir le code source des animations suivantes:

Liens


  1. La plupart de ces premiers exemples sont extraits de la documentation de XCAS

  2. Ce fichier est destiné à être exploité lors de réutilisations futures (non encore implémenté), pour l'instant il me sert beaucoup pour le débogage.

  3. Les deux premiers nombres correspondent au coin inférieur gauche, les deux derniers au coin supérieur droit.