La courbe de Von Koch

Ce premier exercice a pour but de vous faire tracer une fractale appelée courbe de Von Koch.

Téléchargez le fichier « à trous » ci-dessous et glissez le dans votre dossier Recursivite > Fractales.

Le processus de base

On part d'un segment (étape 0) :

puis on transforme ce segment ainsi (étape 1) :

Dans cette figure transformée, chaque segment a une longueur égale au tiers de la longueur du segment de l'étape 0 et la base de la pointe a aussi cette longueur (on a donc un triangle équilatéral).

Complétez le code de la fonction etape(). Vous utiliserez uniquement les instructions left()right() et forward().

1
def etape(stylo, cote):
2
    """
3
    stylo - une tortue
4
    cote - int, entier strictement positif, longueur du segment initial
5
    Sortie: None - La tortue trace une étape du flocon de VonKoch
6
    """
7
    pass

Testez ensuite cette fonction en effectuant un appel dans le Programme principal.

Conseil

Réalisez un dessin à la main avant de vous lancer dans la programmation pour bien identifier les angles de rotation.

La répétition

On réitère ensuite le processus précédent.

  • Étape 2 :

  • Étape 3 :

  • ...

En vous inspirant du travail réalisé dans la question précédente, complétez le code de la fonction récursive courbeVonKoch() qui permet de réaliser ces figures.

Attention, il ne faut pas faire appel à la fonction etape(), il faut s'inspirer de sa structure.

1
def courbeVonKoch(stylo, n, cote):
2
    """
3
    stylo - une tortue
4
    n - int, nombre d'étapes à réaliser
5
    cote - int, entier strictement positif, longueur du segment initial
6
    Sortie: None - La tortue trace n étapes de la courbe  de VonKoch
7
    """
8
    pass

ComplémentUne piste...

Exprimer courbeVonKoch(stylo, n, cote) en fonction de courbeVonKoch(stylo, n-1, cote//3) :

ExempleExemple d'appel

L'appel courbeVonKoch(sophie, 4, 400) permet de tracer l'image ci-dessous :

On change l'étape de base

On part d'un segment :

et maintenant on le transforme comme suit :

Proposez un code de répétition de ce processus comme vous l'avez fait pour la courbe de Von Koch.

1
def courbeCarreeVonKoch(stylo, n, cote):
2
    """
3
    stylo - une tortue
4
    n - int, nombre d'étapes à réaliser
5
    cote - int, entier strictement positif, longueur du segment initial
6
    Sortie: None - La tortue trace n étapes de la courbe  "carrée" de VonKoch
7
    """
8
    pass

ExempleExemple d'appel

L'appel courbeCarreeVonKoch(sophie, 3, 200) permet de tracer l'image ci-dessous :