Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/lib/python3.8/turtledemo/round_dance.py @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 68:5028fdace37b |
---|---|
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() |