equal
deleted
inserted
replaced
|
1 """ turtle-example-suite: |
|
2 |
|
3 tdemo_wikipedia3.py |
|
4 |
|
5 This example is |
|
6 inspired by the Wikipedia article on turtle |
|
7 graphics. (See example wikipedia1 for URLs) |
|
8 |
|
9 First we create (ne-1) (i.e. 35 in this |
|
10 example) copies of our first turtle p. |
|
11 Then we let them perform their steps in |
|
12 parallel. |
|
13 |
|
14 Followed by a complete undo(). |
|
15 """ |
|
16 from turtle import Screen, Turtle, mainloop |
|
17 from time import clock, sleep |
|
18 |
|
19 def mn_eck(p, ne,sz): |
|
20 turtlelist = [p] |
|
21 #create ne-1 additional turtles |
|
22 for i in range(1,ne): |
|
23 q = p.clone() |
|
24 q.rt(360.0/ne) |
|
25 turtlelist.append(q) |
|
26 p = q |
|
27 for i in range(ne): |
|
28 c = abs(ne/2.0-i)/(ne*.7) |
|
29 # let those ne turtles make a step |
|
30 # in parallel: |
|
31 for t in turtlelist: |
|
32 t.rt(360./ne) |
|
33 t.pencolor(1-c,0,c) |
|
34 t.fd(sz) |
|
35 |
|
36 def main(): |
|
37 s = Screen() |
|
38 s.bgcolor("black") |
|
39 p=Turtle() |
|
40 p.speed(0) |
|
41 p.hideturtle() |
|
42 p.pencolor("red") |
|
43 p.pensize(3) |
|
44 |
|
45 s.tracer(36,0) |
|
46 |
|
47 at = clock() |
|
48 mn_eck(p, 36, 19) |
|
49 et = clock() |
|
50 z1 = et-at |
|
51 |
|
52 sleep(1) |
|
53 |
|
54 at = clock() |
|
55 while any([t.undobufferentries() for t in s.turtles()]): |
|
56 for t in s.turtles(): |
|
57 t.undo() |
|
58 et = clock() |
|
59 return "Laufzeit: %.3f sec" % (z1+et-at) |
|
60 |
|
61 |
|
62 if __name__ == '__main__': |
|
63 msg = main() |
|
64 print msg |
|
65 mainloop() |