Dessiner une fractale

Nous allons programmer Scratch pour dessiner la fractale suivante :

Une fractale sous Scratch
Une fractale sous Scratch

Pour cela nous allons introduire une nouvelle façon de programmer : la programmation récursive. Lorsque l’on programme une fonction, on fait appel à cette même fonction.

Motif de base

Notre fractale est construite par répétition d’un motif triangulaire dont vous trouverez la géométrie ci-desous :

le motif de la fractle
le motif de la fractle

Profondeur de la fractale

Nous introduirons la notion de profondeur pour caractériser une fractale. Nous appellerons cette profondeur N.

4 niveaux de récursivité
4 niveaux de récursivité

Le motif de base correspond à une profondeur de 1, si on répète le motif sur chacun des 4 cotés on a une fractale de profondeur 2, si on recommence à nouveau sur les 16 coté on a une profondeur 3 et ainsi de suite.

Exercice

Nous allons dessiner notre fractale à l’aide de 2 fonctions (blocs sous scratch), une fonction qui dessine le motif de base, une fonction qui s’appelle elle même récursivement pour dessiner les différents niveaux.

Dessin du motif

Faire une fonction qui dessine le motif de base à partir de la position et de la direction courantes du personnage. Cette fonction prendra la taille du motif en argument.

Trouver la principe de récursivité

Nous considererons une fonction

FRACTALE T N

qui représente une fractale de taille T et de profondeur N. Recopiez le dessin ci-dessous et complétez la légende.

Définir farctale 90 2
Définir farctale 90 2

Recopiez à nouveau le dessin ci-dessous et complétez à nouveai la légende :

Définir fractale taille n
Définir fractale taille n

Programmer le block

Programmez sous scratch le bloc FRACTALE T N qui met en oeuvre la fonction ci-dessus. Vous utiliserez un test de controle SI ALORS SINON pour différencier quoi faire dans le cas où N=1 et dans le cas où N>1.