2 # contributed by Gerhard Schmid and André Wobst
4 # extend module search path - not needed when PyX is installed properly
5 import sys
; sys
.path
[:0] = [".."]
12 # base transformations for the left, center, and right part of the tree
13 ltrafo
= trafo
.rotate(65).scaled(0.4).translated(0, l
* 2.0 / 3.0)
14 ctrafo
= trafo
.rotate(-4).scaled(0.75).translated(0, l
)
15 rtrafo
= trafo
.mirror(90).rotated(-65).scaled(0.35).translated(0, l
)
18 "return transformations for a recursive tree of given depth"
21 subtree
= tree(depth
- 1)
22 r
.extend([t
*ltrafo
for t
in subtree
])
23 r
.extend([t
*ctrafo
for t
in subtree
])
24 r
.extend([t
*rtrafo
for t
in subtree
])
29 # apply the transformation to a "sub"-canvas and insert it into the "main" canvas
30 c
.insert(canvas
.canvas(t
).stroke(path
.line(0, 0, 0, l
)))
31 c
.writetofile("tree", paperformat
="a4")