teaching:progappchim:koch_snowflake

Flocon de Koch

Courbe fractale créée suivant un principe de récursivité, en utilisant la librairie turtle

Koch_snowflake-turtle.py
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
 
# exemple de  courbe fractale (Koch)
# cf. http://fr.wikipedia.org/wiki/Flocon_de_von_Koch
# et http://en.wikipedia.org/wiki/Koch_snowflake 
# ce programme est basé sur un principe de récursivité
# (une fonction qui s'appelle elle-même)
 
from turtle import * # module turtle. Doc : http://docs.python.org/library/turtle.html
from time import sleep
 
def flocon(longueur, niveau):
    """Dessine une ligne à une étape finie tendant vers la création
    d'une ligne fractale (nombre infini d'étape) suivant le concept de Koch,
    caractérisée par sa longueur et le niveau de récursivité. A chaque niveau,
    la fonction fait appel à elle-même 4 fois, à un niveau inférieur, et le
    segment est droit lorsqu'on est au niveau 0.
    """
    if niveau == 0:
        forward(longueur)
        return
    longueur /= 3.0
    flocon(longueur, niveau-1)
    left(60)
    flocon(longueur, niveau-1)
    right(120)
    flocon(longueur, niveau-1)
    left(60)
    flocon(longueur, niveau-1)
 
 
print(flocon.__doc__)
speed(0)
long = 500.0  # la longueur du segment
niveaumin,niveaumax=2,6  # niveau min et max si on superpose plusieurs étapes tendant vers la fractale de Koch
penup()
goto(-250,200)
pendown()
for j in range(niveaumin,niveaumax+1):
    for i in range(3): # les 3 côtés d'un triangle équilatéral
        flocon(long, j)
        right(120)
 
sleep(4)  #pause
Ce site web utilise des cookies. En utilisant le site Web, vous acceptez le stockage de cookies sur votre ordinateur. Vous reconnaissez également que vous avez lu et compris notre politique de confidentialité. Si vous n'êtes pas d'accord, quittez le site.En savoir plus
  • teaching/progappchim/koch_snowflake.txt
  • Dernière modification : 2017/03/07 14:37
  • de villersd