Dégradé
This commit is contained in:
parent
0dc0134920
commit
e4e3dcabf1
71
Chapitre 2 - Récursivité/C06_tp_fractales_koch.py
Normal file
71
Chapitre 2 - Récursivité/C06_tp_fractales_koch.py
Normal file
|
@ -0,0 +1,71 @@
|
|||
# coding: utf-8
|
||||
#
|
||||
# Chapitre 6 - TP 2 - Dessiner des fractales (page 128)
|
||||
#
|
||||
|
||||
from turtle import forward, speed, left, right, pencolor, hideturtle, setheading, goto, penup, pendown, done
|
||||
|
||||
|
||||
# Rappels turtle:
|
||||
#
|
||||
# speed(0) donne la vitesse maximale à la tortue
|
||||
# hideturtle() évite de dessiner la tortue elle-même pour se concentrer sur son parcours
|
||||
# forward(x) avance la tortue d'une distance x
|
||||
# pencolor((r,g,b)) change la couleur (des prochains traits de) la tortue, avec 0.0 <= r <= 1.0
|
||||
# left(x), right(x) pivotent la tortue de x degrés à droite ou gauche
|
||||
# setheading(0), pas nécessaire, qui peut servir pour tester les fonctions, réoriente la tortue vers la droite.
|
||||
# goto(x,y), pas nécessaire, qui peut servir pour tester les fonctions, déplace la tortue jusque (x,y).
|
||||
|
||||
total = 0
|
||||
count = 0
|
||||
|
||||
def fragment_koch(n, longueur):
|
||||
global count
|
||||
speed(10)
|
||||
hideturtle()
|
||||
if n == 0:
|
||||
pencolor(count / total, 0., 0.)
|
||||
forward(longueur)
|
||||
count += 1
|
||||
else:
|
||||
fragment_koch(n - 1, longueur / 3)
|
||||
left(60)
|
||||
fragment_koch(n - 1, longueur / 3)
|
||||
right(120)
|
||||
fragment_koch(n - 1, longueur / 3)
|
||||
left(60)
|
||||
fragment_koch(n - 1, longueur / 3)
|
||||
|
||||
|
||||
# Question 3
|
||||
def koch(n):
|
||||
global total
|
||||
"""
|
||||
Dessine un flocon de koch.
|
||||
La taille de chaque côté du triangle de départ est fixée par longueur = 100.
|
||||
La profondeur de récursion est limitée à n.
|
||||
"""
|
||||
longueur = 300
|
||||
total = 3 * (4**n)
|
||||
for i in range(3):
|
||||
# if i == 1:
|
||||
# pencolor("red")
|
||||
# else: pencolor("black")
|
||||
fragment_koch(n, longueur)
|
||||
right(120)
|
||||
|
||||
|
||||
# Test:
|
||||
# avant d'exécuter le code de la question 4 et 5
|
||||
# on pourra s'assurer que la tortue commence par le segment du haut du triangle et
|
||||
# à la coordonnée que l'on choisit, avec :
|
||||
penup()
|
||||
goto(-150,150)
|
||||
pendown()
|
||||
setheading(0)
|
||||
koch(2)
|
||||
print(count)
|
||||
done()
|
||||
|
||||
# 1. elle dessine au fur et a mesure du calcul
|
||||
|
Loading…
Reference in a new issue