Retour à la page d'accueil

Retour aux figures

Introduction

Le programe MetaPost a été bâti à partir de MetaFONT, le programme de Donals Knuth qui est utilisé pour programmer des polices de caractères en bitmap. Une très bonne documentation de MetaPost est disponible librement ici
https://www.tug.org/docs/metapost/mpman.pdf

Utilisation d'un fichier .mp

Un fichier .mp contient le code de la figure. Pour compiler le fichier, disons, carre.mp, dans un terminal, on fait

mpost carre.mp
et dans les réglages standards, cela produira carre.1, carre.2, etc. Ce sont des images postscript, donc vectorielles.

Pour utiliser une image avec pdftex ou pdflatex, il est préférable de produire une image en pdf. Pour ce faire, on fait

mpost carre.mp
mptopdf carre
pour produire carre-1.pdf, carre-2.pdf, etc.

Si le fichier .mp contient la ligne

outputformat:="(format)";
alors mpost produira une image du type (format) plutôt qu'un postscript. Le format peut être svg ou png.

Animations

Je produis mes animations en combinant mpost et ffmpeg. Par exemple, on suppose que le fichier a.mp produit les images a-001.png,..., a-100.png. On peut les combiner en gif par une commande du genre

ffmpeg -framerate 10 -i a-%03d.png animation.gif
Cela produira animation.gif ayant un framerate de 10 frames/seconde, où le premier frame est a-001.png et ensuite ils se suivent en ordre numérique.

Pour que a.mp produise des images de la forme a-001.mp, on utilise la variable interne outputtemplate. Par exemple, on pourrait ajouter la ligne

outputtemplate:="%j-00%c.png";
pour obtenir a-001.png. (Voir la section 14.1 de la documentation.)

Exemple

Si on prend le fichier champs.mp de la page des figures, on peut obtenir l'animation comme suit

mpost champs
ffmpeg -frameate 10 -i champs-%03d.png champs.gif
La première ligne génère les fichiers champ-000.png,...,champ-360.png et la deuxième ligne les combine pour produire un gif de 361 frames.