tite fractale

La Tortue, factorisation du code

Attention : cette activité est devenue obsolète depuis que Microalg a intègré une tortue. Voir la page correspondante dans la galerie de Microalg.

1. Un peu d’histoire

Une partie du langage LOGO, développé par Wally Feurzig et Seymour Papert en 1966, est consacrée à l’interaction de l’utilisateur avec une tortue qui dessine en laissant une trace derrière elle.

Papert, dont je vous conseille vivement le livre Jaillissement de l’esprit, dont j'ai rédigé une fiche de lecture.

Le langage Python intègre cette tortue dans son module turtle (voir la documentation officielle), inclus dans la distribution standard.

Un memento des Tortues a été constitué sur ce site si vous voulez pratiquer sans utiliser Python.

2. Démarrage

On travaille à partir du squelette de fichier tortue.py. Il faut télécharger ce fichier et l’exécuter.

Vous pouvez normalement supprimer la boucle infinie à la fin du squelette. Aussi, entre chaque essai, pas besoin de fermer le dessin. Il suffit de relancer le script avec `F5` pour qu’une nouvelle fenêtre remplace l’ancienne.

3. Les bases

3.1. Un carré

Faire en sorte que la procédure square dessine effectivement un carré.

3.2. Empiler des carrés

Dessiner :

Créer une procédure pour empiler les carrés.

L’idée ici est non seulement d’utiliser une boucle, mais de créer une procédure à plusieurs paramètres.

S’en servir pour dessiner plusieurs empilements différents sur un même dessin, tant par le nombre de carrés que par la taille des carrés.

4. Création personnelle

4.1. Dessin original

Effectuer sur papier un dessin figuratif, uniquement à base de carrés. Si possible avec des empilements.

Si vraiment vous pensez que c’est nécessaire, vous pouvez utiliser des triangles équilatéraux ou des triangles rectangles et isocèles. Il faudra dans ce cas définir la procédure triangle.

Programmer ce dessin avec la tortue, sans utiliser d’autre instruction que :

Si vous avez besoin d’inspiration, vous pouvez aller voir la galerie d’images.

4.2. Plusieurs copies

Une fois le premier dessin programmé, programmer le même dessin à côté en plus petit puis en plus grand, un peu comme dans Boucle d’Or.

L'idéal étant par la suite de généraliser à n dessins.

Penser à créer une fonction, puis à l’appeler 3 fois avec différents paramètres.
import turtle

def square(side):
    ...

def triangle(side):
    ...

# instructions pour le dessin
turtle.pendown()
...
Devient :
import turtle

def square(side):
    ...

def triangle(side):
    ...

def dessin(taille):
    # instructions pour le dessin
    ...

dessin(50)
dessin(100)
dessin(150)



Christophe Gragnic, qui remercie W.Feurzig et S.Papert, le 10/01/2017, 14h45'24".






Page générée le 04/02/2017, 07h53'41" (source).
historique de la page
historique global

 TogetherJS