Dessin d'automates de jonglage

J'ai écrit un petit programme en C permettant de dessiner les automates de jonglage. Voici son code source :

Télécharger le code source

Pour pouvoir utiliser ce programme, il faut aussi installer Graphviz (qui est un outil de dessin de graphes). On pourra le télécharger ici : Télécharger Graphviz

Mon programme produit un graphe au format ".dot" de Graphviz, et si la commande "dot" est installée, il produit aussi le dessin du graphe au format pdf. Pour le compiler sur un système UNIX, il faut faire "make" dans le dossier, puis lancer le programme avec la commande "./test". Par exemple "./test 3 5" dessine le graphe de jonglage à 3 balles et de hauteur au plus 5.

Qu'est-ce qu'un automate de jonglage ?

Il s'agit d'un graphe dont les arêtes sont étiquetées par des numéros correspondant à la hauteur du lancer (compté en temps et non pas en hauteur physique), et avec un état initial (c'est-à-dire l'état de départ). Les chemins dans ce graphe, partant de l'état initial, décrivent exactement les jonglages possibles.

Comment lire ces graphes ?

Considérons l'automate de jonglage ci-dessous, qui correspond aux jonglages à 3 balles et de hauteur au plus 5 :

Automate de jonglage à trois balles

L'état initial est l'état le plus à gauche. On voit qu'il est possible de rester sur cet état en faisant des 3. Cela correspond au jonglage de base 3 3 3 3 3... Si en revanche on suit l'arête étiquetée par 5, on arrive dans un nouvel état à partir duquel il est possible de faire un 2, un 3, ou un 5. Si l'on suit l'arête étiquetée par 3 à partir de ce nouvel état, puis que l'on suit l'arête étiquetée par 1, on retombe sur l'état initial. On peut donc recommencer cette figure 5 3 1 autant de fois que l'on veut.

Autre exemple : en partant de l'état initial et en faisant un 4, on arrive dans un état à partir duquel on peut faire un 5. Si l'on fait un 1 après ce 5, on retombe dans l'état dans lequel on était après avoir fait le 4 du début. On peut donc recommencer le 5 et le 1. Il est donc possible de réaliser la figure 4 5 1 5 1 5 1 5 1... On dit que le motif 5 1 est un pattern excité : il est possible de l'itérer autant de fois que l'on veut, mais il faut d'abord faire une combinaison (ici un 4) pour pouvoir commencer à faire le pattern 5 1.

Les sommets du graphes sont constitués de ronds et de tirets. Les ronds correspondent aux balles, et les tirets à des emplacements vides. À chaque lancers, on prend la balle qui est en bas, et on la lance à une certaine hauteur, tandis que toutes les autres balles descendent d'un temps. Il n'est donc par exemple pas possible de faire de lancer 1 ou bien 2 à partir de l'état initial, puisqu'il y a déjà des balles à ces emplacement : si l'on essayait de faire quand même un 1 ou un 2 en vrai, il y aurait plusieurs balles qui arriveraient en même temps sur la même main. Et quand il n'y a pas de balle tout en bas, on est obligé de faire un zéro : il n'y a pas de balle qui arrive à ce temps et donc on ne peut rien lancer.

Exemples

Voici quelques exemples de graphes obtenus aves mon programme.

Automate de jonglage à trois balles, hauteur au plus 6 Automate de jonglage à quatre balles, hauteur au plus 6 Automate de jonglage à quatre balles, hauteur au plus 6, sans 0

Le premier est un automate de jonglage à 3 balles et avec hauteur max 6, le deuxième est un automate de jonglage à 4 balles et de hauteur au plus 6, et le troisième est un automate de jonglage à 4 balles et de hauteur au plus 6 sans 0.

Comment visualiser une figure de jonglage ?

Il existe des logiciels permettant d'afficher une animation d'un jongleur en train d'exécuter une figure de jonglage qu'on lui a donné. Par exemple il y a Juggling Lab.