Tree

What is it?

Drawing recursive trees is a standard project in programming languages like Lisp and Logo. StarLogo makes possible new types of recursive trees that are more "natural" and easier to understand. Rather than using a single turtle to draw the entire tree, the StarLogo approach "hatches" a set of new turtles to draw each level of the tree.

How to Use It

Click the setup button to create the root.
Click the tree button to draw a StarLogo tree.
Click on the one step at a time button to draw one level at a time.

The dist slider controls the length of branches in the tree.
The angle slider controls the angles between the branches.
The depth slider controls the depth of the tree.
The x-coord and y-coord sliders control the position of the root.
The variation slider controls the amount of randomness in the tree placement.

 

Things to Notice

Each level of the tree is drawn in parallel. That is, the program draws the trunk, then the next two branches, then the next four sub-branches, and so on. In the standard Lisp/Logo approach for drawing recursive trees, the drawing order is very different: the program draws all of the leftmost branches of the tree and then works its way over until it draws all of the rightmost branches. The StarLogo approach seems much more natural and intuitive.

Explorations
  • By adjusting the sliders, you can make some patterns that look more like "creatures" than trees. Try it.
StarLogo Features
In the treestep procedure, the "counter" for the recursion is kept as a local turtle variable, not as a local procedure variable.



We welcome your feedback and suggestions! Please send us email