// LINUXFR.ORG — LINUX & OPEN SOURCE
L'art non contextuel
Traduit de l’allemand ; publié à l’origine sur gnulinux.ch.
Cet article présente le logiciel Context Free art, qui permet de « programmer » des images à l’aide de quelques commandes simples.
Le contenu du site Context Free Art est sous licence Creative Commons Attribution-Share Alike 2.5 et le logiciel sous GPLv2.
Sous Ubuntu/Debian, on installe le programme avec sudo apt-get install contextfree. Pour les autres distributions, une notice d’installation est disponible sur le site du projet. On peut aussi utiliser Distrobox pour faire tourner Debian/Ubuntu dans un conteneur sous une autre distribution Linux.
Sous Windows, il existe une interface graphique. Sous Linux, en revanche, on exécute le programme dans le terminal avec cfdg fichier_entree.txt fichier_sortie.png.
Avec un peu de « magie Linux », on peut sûrement faire en sorte que cfdg soit relancé automatiquement à chaque enregistrement du fichier, et ainsi se passer du terminal. Cela dit, la génération d’une image à partir du code peut être relativement longue ; il est donc parfois préférable de pouvoir initier et arrêter la génération manuellement.
Une documentation détaillée du langage se trouve dans le wiki du projet. Nous avons déjà rencontré quelques éléments de syntaxe dans l’image ci-dessus :
Les formes de base disponibles sont CIRCLE, SQUARE et TRIANGLE. Dans cet article, nous utiliserons quelques-unes des modifications suivantes (les points d’interrogation représentent des nombres à insérer) :
L’un des grands atouts de Context Free est qu’une forme peut dessiner une copie (éventuellement modifiée) d’elle-même. En informatique, ce procédé s’appelle la récursion. Voici un petit exemple :
Lorsqu’on utilise la récursion, il faut faire un peu attention : en principe, le programme pourrait tourner indéfiniment et dessiner toujours plus de copies de la forme. Pour éviter cela, nous avons intégré ci-dessus une réduction de taille : lorsque les formes deviennent trop petites, Context Free interrompt le travail et cesse de les dessiner.