Outils pour utilisateurs

Outils du site


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

Références

Ce site web utilise des cookies pour analyser le trafic de visites. En restant sur ce site, vous acceptez le stockage de cookies sur votre ordinateur. En savoir plus
teaching/progappchim/koch_snowflake.txt · Dernière modification: 2017/03/07 14:37 par villersd