Spirographe V2 Python
Le Spirographe est un jeu de création de motifs géométriques à l’aide de cercles crantés. Il fonctionne en plaçant un point traceur dans un petit cercle qui roule à l’intérieur d’un cercle fixe. Ce mouvement génère des motifs appelés hypocycloïdes.
En utilisant des équations d’hypocycloïde et quelques paramètres (rayon du cercle fixe, rayon du cercle roulant et distance du point traceur), il est possible de générer automatiquement des tracés similaires à ceux obtenus avec le jeu Spirographe. La variation de ces paramètres permet de produire des motifs différents, allant de figures simples et régulières à des formes plus complexes.
| Mouvement | Equations |
|---|---|
![]() |
Une hypocycloïde peut être définie en Python par l’équation paramétrique suivante :
R : rayon du cercle fixe r : rayon du cercle roulant d : distance du point traceur au centre du cercle roulant t : angle de rotation du cercle roulant |
Principes
Le script est relativement simple et le principe repose sur un grand cercle fixe, sur un petit cercle qui tourne à l’intérieur, et un point précis sur ce dernier (là où le stylo se place) :
Grand cercle (R)
└── Petit cercle (r) qui roule dedans (ou selon les valeurs à l’extérieur)
└── Stylo à une distance (d) du centre
Note 1 : Le rayon du cercle intérieur (“petit cercle”) peut être plus grand que celui du cercle fixe. Le tracé fonctionnera toujours.
Note 2 : Le crayon peut se trouver à l’extérieur du cercle intérieur (“petit cercle”). Le tracé fonctionnera toujours.
Interface du Spirographe
Cette version possède une interface graphique pour controller les paramètres. L’animation permet de comprendre le déplacement du stylo et de comprendre la courbe finale.
Cercle central (blanc) plus petit que le cercle fixe (orange) :
Cercle central (blanc) plus petit que le cercle fixe (orange) avec un crayon à l’extérieur :
Cercle central (blanc) plus grand que le cercle fixe (orange) :
Exemples
Pour des motifs hypotrochoïdes ( formes étoile ou fleur), le secret réside dans le rapport R / r et la distance d.
Pour une figure en étoile/fleur avec beaucoup de pétales :
Retrpremiers entre eux(gcd(R,r) = 1): le motif fait R tours avant de se refermerd < r: boucles serrées → pétales finsd ≈ r: pétales qui touchent le centre → forme étoile plus marquéed > r: motifs plus ouverts et boucles plus grosses
Exemples de variations en fonction des Valeurs R, r et d :
| Valeurs | Formes | Valeurs | Formes | Valeurs | Formes |
|---|---|---|---|---|---|
| R = 8 r = 3 d = 4 T = 3 | ![]() |
R = 13 r = 3.33 d = 33 T = 5 | ![]() |
R = 15 r = 9 d = 10 T = 3 | ![]() |
| R = 26 r = 10 d = 5 T = 5 | ![]() |
R = 8 r = 3 d = 2 d = 3 | ![]() |
R = 20 r = 9 d = 10 T = 9 | ![]() |
| R = 14 r = 3 d = 7.5 T = 7 | ![]() |
R = 25 r = 4 d = 25 d = 4 | ![]() |
R = 17 r = 9.5 d = 10 T = 19 | ![]() |
| R = 8.5 r = 3.39 d = 4 T = 40 | ![]() |
R = 9.56 r = 12 d = 19 T = 59 | ![]() |
R = 52 r = 7.5 d = 40 T = 11 | ![]() |
| R = 52 r = 7.5 d = 40 T = 5 | ![]() |
R = 14 r = 3 d = 2 T = 3 | ![]() |
R = 12.1 r = 13.1 d = 5.3 T = 70 | ![]() |
Spirographe Python V2
Modules requis
Les classes numpy, matplotlib et tkinter seront nécéssaires :
python -m pip install numpy matplotlib tkinter |
Script
Le script est sur le même principe que la version http://n0tes.fr/2026/01/06/Python-Spirographe/, la construction du GUI a juste générée beaucoup de code en plus :
# ==================================================================== # |
Documentation
https://fr.wikipedia.org/wiki/Hypocyclo%C3%AFde
https://fr.wikipedia.org/wiki/Repr%C3%A9sentation_param%C3%A9trique
https://fr.wikipedia.org/wiki/Courbe_cyclo%C3%AFdale















