Pour ce début de rentrée, je me suis dit de faire un mini-tutoriel sur une façon de générer informatiquement des fractales.
Dans ce mini-tutoriel, je vais vous montrer le potentiel du module Turtle de Python pour la génération de fractales par récurrence.
A) Présentation du module Turtle et des commandes associées :
Ce module permet de faire déplacer un curseur qui s’apparente à une tortue sur l’écran (d’où l’image de présentation du tutoriel). Il existe toute une série de commandes qui permet de donner des ordres à cette tortue. En voici une liste de commande exhaustive :
- reset() : remise à zéro
- forward(…) : avance la tortue
- backward(…) : recule la tortue
- right(…) : fait pivoter la tortue vers la droite
- left(…) : fait pivoter la tortue vers la gauche
- up() : arrête d’écrire sur l’écran
- down() : recommence à écrire sur l’écran
- goto(x,y) : emmène la tortue à la coordonnée (x,y)
- width(…) : change l’épaisseur du trait de crayon
- color(…) : change la couleur d’écriture
Il existe encore un certain nombre de commandes (speed, dot, circle, fill, write…).
Pour en savoir plus, allez voir au lien suivant (in english of course) : https://docs.python.org/2/library/turtle.html#turtle-methods
B) Génération de quelques fractales :
Certaines fractales peuvent être générées à l’aide de ce module Turtle.
Je vous montre une collection de fractales que j’ai réussi à faire à l’aide de ce module.
B.1.1) La fractale de Von Koch …
B.1.2) …et le flocon de Von Koch (Koch snowflake)…
B.1.3) …sans oublier le flocon de Von Koch inversé (the Koch flowsnake)…
B.1.4) …et une de ces variantes
B.2) Le triangle de Sierpinski
B.3) Le dragon de Heighway
Après quelques itérations supplémentaires (4 pour être exact), voici ce que l’on obtient :
B.4) L’arbre de Pythagore
C) Des codes Python pour vous motiver :
Je vous propose de vous fournir deux codes Python afin que vous puissiez débuter avec le module Turtle (si ce n’est pas déjà le cas…).
Mais avant cela, je vous donne deux fonctions qui servent à ce que la fractale ne sorte pas de l’écran dans l’interface Tkinter; les voici :
Vous verrez, ces deux fonctions sont très pratiques pour générer des grandes figures.
Je vous donne le code Python qui m’a permis de générer la fractale de Von Koch; le voici :
Enfin, je vous fourni aussi le code qui m’a permis de générer la fractale du Triangle de Sierpinski; le voici :
Conclusion
Voilà, ici s’achève ce tutoriel.
J’espère que cela vous donnera envie de créer vos propres fractales et de les publier sur le site de l’esprit sorcier. A vos codes !
Ouverture
Voici quelques idées de fractales à réaliser (personnellement, je ne les aies pas faites) :
- La fractale de Von Kock (pour aller plus loin)
http://www.mathcurve.com/fractals/koch/koch.shtml
- La fractale de Cesàro
https://en.wikipedia.org/wiki/Koch_snowflake#Variants_of_the_Koch_curve
- La courbe de Hilbert
http://www.mathcurve.com/fractals/hilbert/hilbert.shtml
- La courbe de Peano
http://www.mathcurve.com/fractals/peano/peano.shtml
- La courbe de Gosper
https://fr.wikipedia.org/wiki/Courbe_de_Gosper
- La fractale du <<Twindragon>> !
http://ecademy.agnesscott.edu/~lriddle/ifskit/gallery/gallery.htm
- La fougère !
http://www.mathcurve.com/fractals/fougere/fougere.shtml
N’hésitez-pas à en proposer d’autres dans les commentaires (il y en a tellement à faire !)
Pour aller bien plus loin :
https://zestedesavoir.com/tutoriels/944/a-la-decouverte-de-turtle/
Bonsoir j’avais pour devoir de faire le programme du flocon de Koch mais je n’y suis pas parvenue grace à vous j’ai puvor ce qui était attendu. Toutefois il était demander de faire le flocon en entier et malgrés mes tentative je n’y suis pas parvenu. Pouriez vous s’il vous plait me donner un coups de main.
Merci.
Bonjour Chrifi,
Je te conseille d’aller voir le lien suivant, tu auras ta réponse; en fait, pour générer le flocon de Von Koch il faut utiliser des rotations:
http://www.les-mathematiques.net/phorum/read.php?15,578842,578903
En espérant avoir répondu à ta question.
Fractales67