Ce script dessine la fougère de Barnsley en vert sur fond noir, point par point.
Durant l'exécution du programme, un point rouge est affiché en haut à gauche de la fenêtre.
Le point rouge est effacé à la fin du traitement.
La fougère de Barnsley dessinée en Python
Le code source Python:
# La fougere de Barnsley
import turtle
import random
# debut de la fonction qui affiche la fougere point par point #
def dessine_f(iterations):
# position du point de depart
x = 50
y = 0
# debut du traitement
for _ in range(iterations):
r = random.randint(0, 100)
if r < 2 :
x = 50
y *= 0.27
elif r < 17 :
x = -0.139 * x + 0.263 * y + 57;
y = 0.246 * x + 0.224 * y - 8.28;
elif r < 30 :
x = 0.17 * x - 0.215 * y + 40.8;
y = 0.222 * x + 0.176 * y + 20.539;
else :
x = 0.781 * x + 0.034 * y + 10.75;
y = -0.032 * x + 0.739 * y + 62.1;
turtle.penup()
turtle.goto( 3 * (100-y), 3 * (x-5) + 10)
turtle.pendown()
turtle.dot(1)
# fin de la fonction dessine_f #
# main - partie principale du script #
turtle.speed(0)
turtle.hideturtle()
turtle.bgcolor("black") # fond noir
turtle.color("red") # on affiche un point rouge enn haut a gauche
# pour indiquer l execution en cours du script
turtle.penup()
turtle.goto(-500, 450)
turtle.pendown()
turtle.dot(5)
turtle.color("green") # on dessine en vert, comme dans Matrix ;-)
dessine_f(50000) # appel de la fonction avec le nombre d iterations
# fin du programme, on efface le point rouge pour indiquer la fin du traitement
turtle.color("black")
turtle.penup()
turtle.goto(-500, 450)
turtle.pendown()
turtle.dot(5)
turtle.done()
Pour en savoir un peu plus :
Vidéo de l'exécution du script :
La fougère de Barnsley est l’un des symboles emblématiques les plus connus du monde des fractales.
Elle a été inventée dans les années 1980 par le mathématicien britannique Michael Barnsley.
L’image est entièrement générée à partir d’équations mathématiques choisies par Barnsley, et elle ressemble de manière frappante à une vraie fougère.
Quant à moi, j’ai découvert la fougère de Barnsley vers 1997/98. À la médiathèque de ma ville, j’empruntais chaque semaine un livre sur les mathématiques et les fractales pour y chercher des idées d’algorithmes à programmer sur ma TI-92.
C’est ainsi que j’ai écrit ma première version de cette fougère fractale en Pascal sur ma calculatrice graphique, puis en Pascal sur Mac, ensuite en C, et maintenant en Python, toujours sur Mac ;-)