mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			65 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 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()
 |