comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/turtledemo/round_dance.py @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 69:33d812a61356
1 """ turtle-example-suite:
2
3 tdemo_round_dance.py
4
5 (Needs version 1.1 of the turtle module that
6 comes with Python 3.1)
7
8 Dancing turtles have a compound shape
9 consisting of a series of triangles of
10 decreasing size.
11
12 Turtles march along a circle while rotating
13 pairwise in opposite direction, with one
14 exception. Does that breaking of symmetry
15 enhance the attractiveness of the example?
16
17 Press any key to stop the animation.
18
19 Technically: demonstrates use of compound
20 shapes, transformation of shapes as well as
21 cloning turtles. The animation is
22 controlled through update().
23 """
24
25 from turtle import *
26
27 def stop():
28 global running
29 running = False
30
31 def main():
32 global running
33 clearscreen()
34 bgcolor("gray10")
35 tracer(False)
36 shape("triangle")
37 f = 0.793402
38 phi = 9.064678
39 s = 5
40 c = 1
41 # create compound shape
42 sh = Shape("compound")
43 for i in range(10):
44 shapesize(s)
45 p =get_shapepoly()
46 s *= f
47 c *= f
48 tilt(-phi)
49 sh.addcomponent(p, (c, 0.25, 1-c), "black")
50 register_shape("multitri", sh)
51 # create dancers
52 shapesize(1)
53 shape("multitri")
54 pu()
55 setpos(0, -200)
56 dancers = []
57 for i in range(180):
58 fd(7)
59 tilt(-4)
60 lt(2)
61 update()
62 if i % 12 == 0:
63 dancers.append(clone())
64 home()
65 # dance
66 running = True
67 onkeypress(stop)
68 listen()
69 cs = 1
70 while running:
71 ta = -4
72 for dancer in dancers:
73 dancer.fd(7)
74 dancer.lt(2)
75 dancer.tilt(ta)
76 ta = -4 if ta > 0 else 2
77 if cs < 180:
78 right(4)
79 shapesize(cs)
80 cs *= 1.005
81 update()
82 return "DONE!"
83
84 if __name__=='__main__':
85 print(main())
86 mainloop()