# molnar.py

Created by schraf

Created on October 09, 2022

2.33 KB

```from turtle import *
from random import *
from math import sin, cos, pi, sqrt

D = -108
speed(0)

def melange(n):
return sorted(list(range(n)), key=lambda _: random())

def dispo(x,y,r,k,n):
#return [x + r * cos(2*k*pi/n), y + r * sin(2*k*pi/n)]
return [x + r * (k % n), y + r * int(k / n)]

def molnar1(N):
for j in range(N*N):
color(randint(0,255), randint(0,255),randint(0,255))
l = melange(N*N)
[x,y] = dispo(-247,-240,50,j,N)
for i in range(N):
[x2,y2] = dispo(x,y,12,l[i],N)
penup() if i == 0 else pendown()
goto(x2, y2)

def molnar2():
pensize(3)
d = 6
for y in range(30):
penup()
goto(-160, -200 + 15 * y)
pendown()
while position()[0] < 160:
if random() < .1:
[x,y] = position()
a = randint(0, 90)
co, si = d * cos(pi * a / 180), d * sin(pi * a / 180)
penup()
goto(x, y - si)
pendown()
forward(2 * d)
penup()
goto(x + 2 * co, y)
pendown()
else:
forward(2 * d)

def sss(n):
#trace =[-90,32,0,4,90,16,0,4,-90,32]
trace =[-45,32,-135,20,0,16,-90,4,-135,32]
pendown()
pensize(n)
for i in range(5):
forward(trace[2 * i + 1])

def molnar3():
for x in range(15):
l = melange(3)
u, v = -150 + 20 * x, -40 + randint(1,48)
for y in range(3):
penup()
goto(u, v + 48 * y)
sss(l[y] + 1)

def molnar4():
pensize(1)
for y in range(15): #15
penup()
goto(-200, 95 - 14 * y)
pendown()
while position()[0] < 200:
[x,y] = position()
forward(3 + randint(0,int((x + 200) // 10)))
goto(x + randint(3,7), y)

def molnar5():
v = 3
for y in range(60):
penup()
goto(-160, -260 + 8 * y)
pendown()
while position()[0] < 160:
if random() < .01:
v += 0.1
pensize(v)
forward(6)

def carre(d, c):
pendown()
a = random()<c
if a:
[x,y] = position()
penup()
forward(randint(1,10))
pendown()
for i in range(4):
forward(d)
right(90)
if a:
penup()
goto(x,y)