Flocons de neige

Nous allons maintenant dessiner des flocons de neige en utilisant la fractale de Koch. Une fractale est un dessin géométrique dont le motif se reproduit à n'importe quelle échelle.

La forme générale est une sorte de triangle, dont chaque coté est généré par des appels récursifs. Vous ne devez dessiner qu'un coté de ce triangle dans la fonction snowSide. Pour simplifier les choses, chaque coté a une couleur particulière. Contentez vous de dessiner les choses en rouge (sans changer votre couleur), et les autres couleurs seront dessinées automatiquement.

Observez l'objectif de chaque monde pour comprendre la logique du motif à dessiner, puis reproduisez-le. Au niveau 0, la courbe de Koch est une simple ligne droite. Au niveau 1, elle est divisée en trois tiers, et la partie du milieu est remplacée par deux cotés d'un triangle équilatéral de même longueur que le segment supprimé. Au niveau 2, le processus est répété avec le tiers central de chaque segment remplacé par un petit triangle équilatéral.

Le pseudo-code du cas général est le suivant :

  Dessiner récursivement un segment plus petit
  Tourner à 60 degrés vers la gauche
  Dessiner récursivement un segment plus petit
  Tourner à 120 degrés vers la droite
  Dessiner récursivement un segment plus petit
  Tourner à 60 degrés vers la gauche
  Dessiner récursivement un segment plus petit

Comme vous pouvez le constater, la fonction avance() n'est pas appelée dans le cas récursif, mais seulement dans le cas de base, quand il n'y a plus d'appel récursif.

Voici le résultat des premiers niveaux de récursion.

Vous devez écrire la fonction snowSide, qui est récursive. Mais n'appelez pas snowFlake depuis snowSide, car sinon le résultat sera vraiment étrange et inattendu.