Dessiner le flocon de Koch
Rappels sur la 
On rappelle ci-dessous les instructions utiles du module turtle.
| Appel | Rôle |
|---|---|
hideturtle() |
Cache la tortue. |
speed(n) |
Définit la vitesse de l'animation.n est un entier entre 1 (lent) et 10 (rapide). |
animation(s) |
Autorise ou non les animations.s est soit 'on' (avec animations, valeur par défaut)soit 'off' (sans animations). |
penup() |
Lève le crayon : les déplacements de la tortue ne sont plus dessinés. |
pendown() |
Baisse le crayon : les déplacements de la tortue sont dessinés. |
heading() |
Renvoie la direction vers laquelle pointe la tortue sous la forme d'une mesure d'angle en degrés. |
setheading(d) |
Définit la direction vers laquelle pointe la tortue.d est une mesure d'angle en degrés. |
position() |
Renvoie la position de la tortue sous la forme d'un couple de nombres (x, y). |
goto(x, y) |
La tortue se déplace à la position (x, y).x et y sont des nombres. |
left(a) |
La tortue tourne sur elle-même vers la gauche de a degrés.a est un nombre. |
right(a) |
La tortue tourne sur elle-même vers la droite de a degrés.a est un nombre. |
forward(p) |
La tortue avance de p pixels.p est un nombre. |
Dans CodEx, il est possible d'augmenter la vitesse jusqu'à
speed(100) !
On souhaite dessiner, à l'aide du module turtle, le fameux flocon de Koch.
Sous ses aspects très élaborés, cette figure peut se construire de façon récursive à partir d'un simple triangle équilatéral !
1. La courbe de Koch
Avant de construire le flocon, construisons la courbe de Koch :
Cette courbe peut se construire de façon récursive :
- on se donne un segment de départ de longueur donnée ;
- pour obtenir l'étape suivante, on partage ce segment en quatre segments trois fois plus petits ;
- Répéter l'étape précédente sur chaque petit segment permet de construire l'étape suivante...
Vous devez donc écrire la fonction courbe qui prend deux paramètres :
longueur: un entier positif indiquant la largeur totale de la courbe à construire ;profondeur: le degré de profondeur de la construction.
Cette fonction construit la figure comme l'illustrent les exemples ci-dessous :
-
courbe(100, 0)construit l'étape0(un unique segment de100pixels de long) ; -
courbe(150, 1)construit l'étape1(quatre segments mesurant chacun50pixels de long) ; -
courbe(90, 2)construit l'étape2(seize segments mesurant chacun10pixels de long).
La fonction modele dessine à l'écran la courbe attendue (longueur=300, etape=5). Vous pouvez l'exécuter ou non !
Votre courbe
2. Le flocon de Koch
Maintenant que vous savez construire une courbe de Koch, il vous reste à construire l'ensemble du flocon de Koch ! Un simple code itératif suffit : de la même façon qu'un triangle est formé de trois segments consécutifs, le flocon est formé de trois courbes consécutives.
Vous pouvez utiliser la fonction courbe qui est déjà chargée en mémoire dans sa version corrigée.
Vous devez donc écrire la fonction flocon qui prend deux paramètres :
longueur: un entier positif indiquant la largeur totale de la figure à construire ;profondeur: le degré de profondeur de la construction.
Cette fonction construit la figure comme expliqué ci-dessous :
flocon(100, 0)construit un triangle équilatéral de100pixels de côté ;flocon(300, 5)construit le flocon souhaité : chaque segment a été découpé5fois.
Encore une fois, la fonction modele dessine à l'écran la figure attendue.
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Votre flocon
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)