50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from turtle import *
|
|
|
|
# Génération de plante par grammaire L-system
|
|
|
|
def initialisation():
|
|
# Définition des variables indépendantes de la grammaire
|
|
# Pour le flocon de Koch
|
|
nbiteration = 3
|
|
longueur = 200
|
|
angle = 45
|
|
axiome = 'F'
|
|
regle = 'F+F--F+F'
|
|
return nbiteration, longueur, angle, axiome, regle
|
|
|
|
def production(nbiteration, longueur, angle, axiome, regle):
|
|
if nbiteration == 0 :
|
|
forward(longueur)
|
|
else:
|
|
i = 0
|
|
while i < len(regle):
|
|
regle1 = regle[i]
|
|
if regle1 == 'F':
|
|
production(nbiteration-1, longueur/3, angle, axiome, regle)
|
|
if regle1 == '+':
|
|
left(angle)
|
|
if regle1 == '-':
|
|
right(angle)
|
|
i = i + 1
|
|
|
|
# Placement initial de la tortue
|
|
up()
|
|
backward(200)
|
|
down()
|
|
|
|
# Programme principal
|
|
## init[1] : nbiteration
|
|
## init[2] : longueur
|
|
## init[3] : angle
|
|
## init[4] : axiome
|
|
## init[5] : regle
|
|
init = initialisation()
|
|
production(init[0], init[1], init[2], init[3], init[4])
|
|
right(120)
|
|
production(init[0], init[1], init[2], init[3], init[4])
|
|
right(120)
|
|
production(init[0], init[1], init[2], init[3], init[4])
|
|
|
|
#quit()
|