1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- """ 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()
|