发布时间:2019-08-01 05:17:09
def start() :
reset()
ht()
pu()
makeshapes()
resizemode("user")
def test(l=200, n=4, fun=sun, startpos=(0,0), th=2):
global tiledict
goto(startpos)
setheading(0)
tiledict = {}
a = clock()
tracer(0)
fun(l, n)
b = clock()
draw(l, n, th)
tracer(1)
c = clock()
def stop():
global running
running = False
def main():
global running
clearscreen()
bgcolor("gray10")
tracer(False)
shape("square")
f = 0.975
phi = 9.064678
s =5
c = 1
sh = Shape("pound")
for i in range(10):
shapesize(s)
p =get_shapepoly()
s *= f
c *= f
tilt(-phi)
sh.addponent(p, (c, 0.25, 1-c), "black")
register_shape("multitri", sh)
shapesize(2)
shape("multitri")
pencolor("white")
pu()
goto(200,400)
pencolor(0.7,0.7,1)
write("Please wait...",
align="center", font=('Arial Black', 36, 'bold'))
pu()
setpos(0, -200)
dancers = [ ]
for i in range(180):
fd(7)
tilt(-4)
lt(2)
update()
if i % 12 == 0:
dancers.append(clone())
running = True
onkeypress(stop)
cs = 1
while running:
ta = -4
for dancer in dancers:
dancer.fd(7)
dancer.lt(2)
dancer.tilt(ta)
ta = -4 if ta > 0 else 2
if cs < 10:
right(4)
shapesize(cs)
cs *= 1.005
update( )
def ball():
screen = Screen()
width ,height = 1028,960
screen.setup(width,height)
screen.title("百变的图形 ")
screen.bgcolor("black")
screen.delay(0)
pensize(5)
speed(5)
r = random.random()
g = random.random()
b = random.random()
pencolor(r,g,b)
fillcolor(r,g,b)
for i in range (12):
circle(200, steps=25)#设置多边形的边数和大小
right(30)#设置右转的角度
circle(60)
def demo(fun=sun):
start()
for i in range(8):
a = clock()
test(20, i, fun)
b = clock()
t = b - a
if t < 2:
sleep(2 - t)
def main2():
#title("Penrose-tiling with kites and darts.")
mode("logo")
demo(sun)
sleep(2)
demo(star)
if __name__ == "__main__":
print(ball())
print(main2())
print(main())
mainloop()