Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| """ turtle-example-suite: | |
| tdemo_round_dance.py | |
| (Needs version 1.1 of the turtle module that | |
| comes with Python 3.1) | |
| Dancing turtles have a compound shape | |
| consisting of a series of triangles of | |
| decreasing size. | |
| Turtles march along a circle while rotating | |
| pairwise in opposite direction, with one | |
| exception. Does that breaking of symmetry | |
| enhance the attractiveness of the example? | |
| Press any key to stop the animation. | |
| Technically: demonstrates use of compound | |
| shapes, transformation of shapes as well as | |
| cloning turtles. The animation is | |
| controlled through update(). | |
| """ | |
| from turtle import * | |
| def stop(): | |
| global running | |
| running = False | |
| def main(): | |
| global running | |
| clearscreen() | |
| bgcolor("gray10") | |
| tracer(False) | |
| shape("triangle") | |
| f = 0.793402 | |
| phi = 9.064678 | |
| s = 5 | |
| c = 1 | |
| # create compound shape | |
| sh = Shape("compound") | |
| for i in range(10): | |
| shapesize(s) | |
| p =get_shapepoly() | |
| s *= f | |
| c *= f | |
| tilt(-phi) | |
| sh.addcomponent(p, (c, 0.25, 1-c), "black") | |
| register_shape("multitri", sh) | |
| # create dancers | |
| shapesize(1) | |
| shape("multitri") | |
| pu() | |
| setpos(0, -200) | |
| dancers = [] | |
| for i in range(180): | |
| fd(7) | |
| tilt(-4) | |
| lt(2) | |
| update() | |
| if i % 12 == 0: | |
| dancers.append(clone()) | |
| home() | |
| # dance | |
| running = True | |
| onkeypress(stop) | |
| listen() | |
| 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 < 180: | |
| right(4) | |
| shapesize(cs) | |
| cs *= 1.005 | |
| update() | |
| return "DONE!" | |
| if __name__=='__main__': | |
| print(main()) | |
| mainloop() | |