Créer des fractales en Python à l’aide du module Turtle

3/09/2016 | Fractales67

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 …

Koch_n(4,500)

B.1.2) …et le flocon de Von Koch (Koch snowflake)…

Flocon Von Koch 2 Flocon Von Koch 3 Flocon Von Koch 4 Flocon Von Koch 5 Flocon Von Koch 6

B.1.3) …sans oublier le flocon de Von Koch inversé (the Koch flowsnake)…

Flocon Von Koch interne 4 Flocon Von Koch interne 5 Flocon Von Koch interne 6

 

B.1.4) …et une de ces variantes

Cesàro 6

B.2) Le triangle de Sierpinski

Triangle_Sierpinski Triangle_Sierpinski_aretes_color Triangle_Sierpinski_color

B.3) Le dragon de Heighway

Après quelques itérations supplémentaires (4 pour être exact), voici ce que l’on obtient :

dragon(14,+1,50000) UN bras

 

B.4) L’arbre de Pythagore

arbre(11,500,30)_new

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 :

Code_Koch

 

Enfin, je vous fourni aussi le code qui m’a permis de générer la fractale du Triangle de Sierpinski; le voici :

Code_Sierpinski

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 !)

 

3 commentaires

  1. 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.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

A propos de

Ingénieur géophysicien de l'EOST (2018)