Spirographe 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 |
Spirographe Python
Modules requis
Les classes numpy et matplotlib seront nécéssaires :
python -m pip install numpy matplotlib |
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
└── Stylo à une distance (d) du centre
Script
Variation des Valeurs :
d = 0 : stylo au centre (cercle simple)d < r : formes doucesd = r : stylo sur le bord du petit cercled > r : stylo en dehors (boucles folles)
#!/usr/bin/env python3 |
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 = 20 | ![]() |
R = 13 r = 3.33 d = 33 T = 10 | ![]() |
R = 15 r = 9 d = 10 T = 20 | ![]() |
| R = 26 r = 10 d = 5 T = 20 | ![]() |
R = 8 r = 3 d = 2 d = 10 | ![]() |
R = 20 r = 9 d = 10 T = 20 | ![]() |
| R = 14 r = 3 d = 7.5 T = 10 | ![]() |
R = 50 r = 8 d = 50 d = 10 | ![]() |
R = 17 r = 9.5 d = 10 T = 50 | ![]() |
| R = 8.5 r = 3.39 d = 4 T = 20 | ![]() |
R = 9.56 r = 12 d = 19 T = 118 | ![]() |
R = 52 r = 7.5 d = 40 T = 20 | ![]() |
| R = 52 r = 7.5 d = 40 T = 12 | ![]() |
R = 14 r = 3 d = 2 T = 14 | ![]() |
R = 12.1 r = 13.1 d = 5.3 T = 107.25 | ![]() |
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















