teaching:progappchim:koch_snowflake

Ceci est une ancienne révision du document !


Flocon de Koch

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

<sxh python; title : 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

</sxh>

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.1354277787.txt.gz
  • Dernière modification : 2012/11/30 13:16
  • de villersd