Drawing Fractal Trees - Part 1
Table Of Contents
- Part 1: Basic fractal theory (this page)
- Part 2: L-Systems - drawing trees.
- Part 3: Implementation in Silverlight, live demo, code download.
A Brief Explanation of Fractals
In plain English, a fractal is a shape whose constituent parts are really just copies (scaled down) of the whole. Here's a simple example, the Koch Curve:
Take a look at the first part made up of 4 line segments. Make a copy of that whole part in your head, shrink it down, and rotate it so that it fits on top of one of the line segments. Notice how that looks like the beginnings of the second part? Keep going (forever), and that's your fractal: Any little bit of it is just a scaled down copy of the rest of it. You can zoom in infinitely and keep seeing the same pattern.
It's a very powerful concept that can generate stunning images when taken further.
But what really strikes me about fractals is that they're real; they're everywhere in the physical world. From lightning to river networks to broccoli to the layout of African villages! And also, to trees, which is where we come in.
Fractals in Trees
If you look at the "Y" shape created by a stylised tree branch, it's identical in concept to the branch that it spawned off, which is identical to its parent branch, etc, etc, until you reach the trunk - which forms the "axiom" of this fractal.
This series of posts will describe a Silverlight program based on this observation that allows users to generate random fractal plants by defining an axiom, a rule to iterate over, and a set of preferences that they can tweak.