diff options
Diffstat (limited to 'Demo/turtle/tdemo_forest.py')
-rw-r--r-- | Demo/turtle/tdemo_forest.py | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/Demo/turtle/tdemo_forest.py b/Demo/turtle/tdemo_forest.py deleted file mode 100644 index a837d84..0000000 --- a/Demo/turtle/tdemo_forest.py +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env python3 -""" turtlegraphics-example-suite: - - tdemo_forest.py - -Displays a 'forest' of 3 'breadth-first-trees' -similar to the one from example tree. -For further remarks see xtx_tree.py - -This example is a 'breadth-first'-rewrite of -a Logo program written by Erich Neuwirth. See: -http://homepage.univie.ac.at/erich.neuwirth/ -""" -from turtle import Turtle, colormode, tracer, mainloop -from random import randrange -from time import clock - -def symRandom(n): - return randrange(-n,n+1) - -def randomize( branchlist, angledist, sizedist ): - return [ (angle+symRandom(angledist), - sizefactor*1.01**symRandom(sizedist)) - for angle, sizefactor in branchlist ] - -def randomfd( t, distance, parts, angledist ): - for i in range(parts): - t.left(symRandom(angledist)) - t.forward( (1.0 * distance)/parts ) - -def tree(tlist, size, level, widthfactor, branchlists, angledist=10, sizedist=5): - # benutzt Liste von turtles und Liste von Zweiglisten, - # fuer jede turtle eine! - if level > 0: - lst = [] - brs = [] - for t, branchlist in list(zip(tlist,branchlists)): - t.pensize( size * widthfactor ) - t.pencolor( 255 - (180 - 11 * level + symRandom(15)), - 180 - 11 * level + symRandom(15), - 0 ) - t.pendown() - randomfd(t, size, level, angledist ) - yield 1 - for angle, sizefactor in branchlist: - t.left(angle) - lst.append(t.clone()) - brs.append(randomize(branchlist, angledist, sizedist)) - t.right(angle) - for x in tree(lst, size*sizefactor, level-1, widthfactor, brs, - angledist, sizedist): - yield None - - -def start(t,x,y): - colormode(255) - t.reset() - t.speed(0) - t.hideturtle() - t.left(90) - t.penup() - t.setpos(x,y) - t.pendown() - -def doit1(level, pen): - pen.hideturtle() - start(pen, 20, -208) - t = tree( [pen], 80, level, 0.1, [[ (45,0.69), (0,0.65), (-45,0.71) ]] ) - return t - -def doit2(level, pen): - pen.hideturtle() - start(pen, -135, -130) - t = tree( [pen], 120, level, 0.1, [[ (45,0.69), (-45,0.71) ]] ) - return t - -def doit3(level, pen): - pen.hideturtle() - start(pen, 190, -90) - t = tree( [pen], 100, level, 0.1, [[ (45,0.7), (0,0.72), (-45,0.65) ]] ) - return t - -# Hier 3 Baumgeneratoren: -def main(): - p = Turtle() - p.ht() - tracer(75,0) - u = doit1(6, Turtle(undobuffersize=1)) - s = doit2(7, Turtle(undobuffersize=1)) - t = doit3(5, Turtle(undobuffersize=1)) - a = clock() - while True: - done = 0 - for b in u,s,t: - try: - b.__next__() - except: - done += 1 - if done == 3: - break - - tracer(1,10) - b = clock() - return "runtime: %.2f sec." % (b-a) - -if __name__ == '__main__': - msg = main() - print(msg) - mainloop() |