Dégradé

This commit is contained in:
Tipragot 2023-10-19 14:53:21 +02:00
parent 0dc0134920
commit e4e3dcabf1
No known key found for this signature in database

View 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