-
-
Save obligingxx/394bdbd25ebe0188beb0 to your computer and use it in GitHub Desktop.
python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" 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("gray80") | |
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.375, 1-c), "blue") | |
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 < 50: | |
right(4) | |
shapesize(cs) | |
cs *= 1.005 | |
update() | |
return "DONE!" | |
if __name__=='__main__': | |
print(main()) | |
mainloop() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment