mirror of
https://github.com/python/cpython.git
synced 2024-11-23 18:04:37 +08:00
891a1f86d4
The 'wikipedia' example is now 'rosette', describing what it draws. The 'penrose' print output is reduced. The 'tree' '1024' output is eliminated.
66 lines
1.3 KiB
Python
66 lines
1.3 KiB
Python
""" turtle-example-suite:
|
|
|
|
tdemo_wikipedia3.py
|
|
|
|
This example is
|
|
inspired by the Wikipedia article on turtle
|
|
graphics. (See example wikipedia1 for URLs)
|
|
|
|
First we create (ne-1) (i.e. 35 in this
|
|
example) copies of our first turtle p.
|
|
Then we let them perform their steps in
|
|
parallel.
|
|
|
|
Followed by a complete undo().
|
|
"""
|
|
from turtle import Screen, Turtle, mainloop
|
|
from time import perf_counter as clock, sleep
|
|
|
|
def mn_eck(p, ne,sz):
|
|
turtlelist = [p]
|
|
#create ne-1 additional turtles
|
|
for i in range(1,ne):
|
|
q = p.clone()
|
|
q.rt(360.0/ne)
|
|
turtlelist.append(q)
|
|
p = q
|
|
for i in range(ne):
|
|
c = abs(ne/2.0-i)/(ne*.7)
|
|
# let those ne turtles make a step
|
|
# in parallel:
|
|
for t in turtlelist:
|
|
t.rt(360./ne)
|
|
t.pencolor(1-c,0,c)
|
|
t.fd(sz)
|
|
|
|
def main():
|
|
s = Screen()
|
|
s.bgcolor("black")
|
|
p=Turtle()
|
|
p.speed(0)
|
|
p.hideturtle()
|
|
p.pencolor("red")
|
|
p.pensize(3)
|
|
|
|
s.tracer(36,0)
|
|
|
|
at = clock()
|
|
mn_eck(p, 36, 19)
|
|
et = clock()
|
|
z1 = et-at
|
|
|
|
sleep(1)
|
|
|
|
at = clock()
|
|
while any(t.undobufferentries() for t in s.turtles()):
|
|
for t in s.turtles():
|
|
t.undo()
|
|
et = clock()
|
|
return "runtime: %.3f sec" % (z1+et-at)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
msg = main()
|
|
print(msg)
|
|
mainloop()
|