fractales_0nsi_2021.py

Created by cent20

Created on November 25, 2021

1.77 KB

Réalisé par un élève de terminale spé NSI dans le cadre d’un devoir maison.


# Auteur : Rémi A.
# Réalisé par de mes élèves de terminale spé NSI
# dans le cadre d'un DM "La tortue et les deux fractales"
# https://twitter.com/nsi_xyz/status/1458138875977625606 ou 1463926433030578185

from turtle import *
hideturtle()
#création de la forme/fractale : script original (https://my.numworks.com/python/cent20/flocon
def frac(longueur, n):
    if n == 0:
        fd(longueur)
    else:
        frac(longueur / 3, n - 1)
        lt(108)
        frac(longueur / 3, n - 1)
        rt(72)
        frac(longueur / 3, n - 1)
        rt(72)
        frac(longueur / 3, n - 1)
        rt(72)
        frac(longueur / 3, n - 1)
        lt(108)
        frac(longueur / 3, n - 1)

#première spirale rouge->jaune en récursivité
def spirale_rouge(repetition, longueur, r, g , b, etape):
    color(r, g, b)
    if repetition == 0 :
        frac(longueur, etape)
    else:
        frac(longueur, etape)
        rt(60)
        if g+200//repetition < 255 :
            g+=200//repetition
        spirale_rouge(repetition - 1, longueur + 80//repetition, r, g, b, etape)
        
#deuxième spirale bleu->bleu clair en récursivite
def spirale_bleue(repetition, longueur, r, g , b, etape, compteur, angle):
    color(r, g, b)
    if repetition == 0 :
        frac(longueur, etape)
    else:
        frac(longueur, etape)
        rt(angle)
        if g+200//repetition < 255 :
            g+=200//repetition
        spirale_bleue(repetition - 1, longueur + 80//repetition, r, g, b, etape, compteur + 1, angle-0.1425*compteur)
        
pu()
goto(0, 0)
pd()
speed(10)
spirale_rouge(10, 10, 250, 0, 0, 3)# couleur rouge + 10 éléments et longueur initiale 10
pu()
goto(0, 0)
pd()
lt(25)
spirale_bleue(10, 8, 0, 0, 250, 3, 0, 55)# couleur bleue + 10 éléments et longueur initiale 8