diff --git a/fractals.py b/fractals.py new file mode 100644 index 0000000000000000000000000000000000000000..184e0ea8a565ce6898d21af9f0bf8ab41ac27c1b --- /dev/null +++ b/fractals.py @@ -0,0 +1,153 @@ +from turtle import * +def zig_zag(): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + left(45) + for _ in range(5): + forward(50) + right(90) + forward(50) + left(90) + + + + + + + +# à l'ordre n+1 la longueur de segment de chaque portion a l'ordre n est de nouveau +#divisé par trois en reproduisant 4 fois le meme shema + + +def von_koch(l:float,n:int): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + if n==0: + return forward(l) + elif n==1: + forward(l/3) + left(60) + forward(l/3) + right(120) + forward(l/3) + left(60) + forward(l/3) + else: + von_koch(l/3,n-1) + left(60) + von_koch(l/3,n-1) + right(120) + von_koch(l/3,n-1) + left(60) + von_koch(l/3,n-1) + +def von_koch_amelioree(l:float,n:int): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + speed(70) + von_koch(l,n) + right(120) + von_koch(l,n) + right(120) + von_koch(l,n) + right(120) + + +def cesaro(l:float,n:int): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + speed(70) + if n==0: + return forward(l) + elif n==1: + forward(2*l/5) + left(85) + forward(2*l/5) + right(170) + forward(2*l/5) + left(85) + forward(2*l/5) + else: + cesaro(2*l/5,n-1) + left(85) + cesaro(2*l/5,n-1) + right(170) + cesaro(2*l/5,n-1) + left(85) + cesaro(2*l/5,n-1) + + +def carre_cesaro(l:float,n:int): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + speed(80) + left(90) + cesaro(l,4) + left(90) + cesaro(l,4) + left(90) + cesaro(l,4) + left(90) + cesaro(l,4) + + + +def sierpinski(l:float,n:int): + """ à_remplacer_par_ce_que_fait_la_fonction + + Précondition : + Exemple(s) : + $$$ + """ + + if n==0: + forward(l) + left(120) + forward(l) + left(120) + forward(l) + left(120) + else: + speed(50) + sierpinski(l/2,n-1) + penup() + forward((l/(2**n))*(2**(n-1)-1)) + left(120) + forward(l/2) + pendown() + sierpinski(l/2,n-1) + penup() + forward((l/(2**n))*(2**(n-1)-1)) + right(120) + forward(l/2) + pendown() + right(120) + sierpinski(l/2,n-1) + + + + + + + +