TP : Les Fractales avec Python

Ressources nécessaires :


Objectif : Dessiner et programmer des fractales avec le module Turtle de Python .

Partie 1 : Présentation du module Turtle

Le module Turtle est pré-installé dans Python, il suffit donc de l'appeler pour l'utiliser.

Lance . Crée un nouveau fichier (TonNOM_TPpython4.py) pour écrire et enregistrer tes programmes et tape :

from turtle import*

Voici la liste des méthodes de turtle que nous allons utiliser :

Partie 2 : Créer une fractale

Une fractale est une courbe formée de figures qui se répètent à l'infini et si on zoome sur une partie de la fractale, on retrouve toute la fractale.

Voici un diaporama qui retrace toutes les étapes de construction de notre fractale :


En conclusion : tracer l'image fractale d'ordre n peut être défini comme une suite par récurrence :

Partie 3 : Programmer une Fractale

Voici les images d'ordre 0 et 1 de notre courbe fractale :

La première chose à programmer est donc ces 2 figures.

le segment

On utlise des fonctions de variable la longueur.

from turtle import*

speed(0)
left(90)
color("red")

def segment(longueur):
    forward(longueur)

segment(200)

le motif

def motif(longueur):
    color("red")
    segment(longueur/2.0)
    color("green")
    left(45)
    segment(longueur/2.0)
    penup()
    backward(longueur/2.0)
    right(90)
    pendown()
    segment(longueur/2.0)
    penup()
    backward(longueur/2.0)
    left(45)
    pendown()
    segment(longueur/2.0)
    

motif(200)

AttentionIl faut que la tortue (le triangle) soit dans la bonne position et au bon endroit à la fin du dessin.

La fractale d'ordre n : l'arbre

Cela revient à programmer une suite définie par récurrence avec une fonction récursive.
Si j'appelle arbre ma fonction, je reprends la fonction motif et je remplace tous les segments verts par arbre.

def arbre(longueur, n):
    if n == 0:
        segment(longueur)
    else:
        color("red")
        segment(longueur/2.0)
        color("green")
        left(45)
        arbre(longueur/2.0,n-1)
        penup()
        backward(longueur/2.0)
        right(90)
        pendown()
        arbre(longueur/2.0,n-1)
        penup()
        backward(longueur/2.0)
        left(45)
        pendown()
        arbre(longueur/2.0,n-1)

arbre(200,4)

Partie 4 : travail personnel

  1. Crée ta propre fractale.
  2. Fais une capture d'écran de ta fractale
  3. Insère l'image dans la page d'accueil de ton site.
  4. Va dans la, dans le cours Algorithmique, choisis Projets : TP Python 4 et dépose ton fichier .py avec ton fractale.