PHP 8.2.31
Preview: tree.py Size: 1.37 KB
/usr/lib64/python3.12/turtledemo/tree.py

#! /usr/bin/python3.12
"""      turtle-example-suite:

             tdemo_tree.py

Displays a 'breadth-first-tree' - in contrast
to the classical Logo tree drawing programs,
which use a depth-first-algorithm.

Uses:
(1) a tree-generator, where the drawing is
quasi the side-effect, whereas the generator
always yields None.
(2) Turtle-cloning: At each branching point
the current pen is cloned. So in the end
there are 1024 turtles.
"""
from turtle import Turtle, mainloop
from time import perf_counter as clock

def tree(plist, l, a, f):
    """ plist is list of pens
    l is length of branch
    a is half of the angle between 2 branches
    f is factor by which branch is shortened
    from level to level."""
    if l > 3:
        lst = []
        for p in plist:
            p.forward(l)
            q = p.clone()
            p.left(a)
            q.right(a)
            lst.append(p)
            lst.append(q)
        for x in tree(lst, l*f, a, f):
            yield None

def maketree():
    p = Turtle()
    p.setundobuffer(None)
    p.hideturtle()
    p.speed(0)
    p.getscreen().tracer(30,0)
    p.left(90)
    p.penup()
    p.forward(-210)
    p.pendown()
    t = tree([p], 200, 65, 0.6375)
    for x in t:
        pass

def main():
    a=clock()
    maketree()
    b=clock()
    return "done: %.2f sec." % (b-a)

if __name__ == "__main__":
    msg = main()
    print(msg)
    mainloop()

Directory Contents

Dirs: 1 × Files: 22

Name Size Perms Modified Actions
- drwxr-xr-x 2026-05-25 08:18:07
Edit Download
4.15 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
951 B lrw-r--r-- 2026-03-03 12:39:30
Edit Download
3.23 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
1.31 KB lrw-r--r-- 2026-03-03 12:39:30
Edit Download
2.90 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
3.39 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
2.38 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
2.00 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
6.36 KB lrw-r--r-- 2026-03-03 12:39:30
Edit Download
1.26 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
1.04 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
3.30 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
2.76 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
1.33 KB lrw-r--r-- 2026-03-03 12:39:30
Edit Download
1.76 KB lrw-r--r-- 2026-03-03 12:39:30
Edit Download
4.93 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
1.37 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
160 B lrw-r--r-- 2026-03-03 12:39:30
Edit Download
1.09 KB lrw-r--r-- 2026-03-03 12:39:30
Edit Download
821 B lrwxr-xr-x 2026-03-03 12:39:30
Edit Download
314 B lrw-r--r-- 2026-03-03 12:39:30
Edit Download
15.01 KB lrwxr-xr-x 2026-03-03 12:39:30
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).