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
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
pour produire carre-1.pdf, carre-2.pdf, etc.mpost carre.mp
mptopdf carre
Si le fichier .mp contient la ligne
alors mpost produira une image du type (format)
plutôt qu'un postscript. Le format peut être
svg ou png.outputformat:="(format)";
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
pour obtenir a-001.png.
(Voir la section 14.1 de la documentation.)outputtemplate:="%j-00%c.png";
Si on prend le fichier champs.mp de la page des figures, on peut obtenir l'animation comme suit
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.mpost champs
ffmpeg -frameate 10 -i champs-%03d.png champs.gif