mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +00:00 
			
		
		
		
	 891a1f86d4
			
		
	
	
		891a1f86d4
		
			
		
	
	
	
	
		
			
			The 'wikipedia' example is now 'rosette', describing what it draws. The 'penrose' print output is reduced. The 'tree' '1024' output is eliminated.
		
			
				
	
	
		
			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 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()
 |