As we have stated earlier, one of the original goals of introducing L-systems was to model growth of various kinds. To do that, we should attach some natural meaning to the formal symbols which are manipulated in the L-system. In this section, we will begin to see how the production rules can have geometric interpretations; the resulting L-systems can produce wonderful geometric objects: various kinds of fractal curves, shapes that mimic the natural world, and tilings of various kinds.
We will start with a very simple L-system:
The generations simply double each time: a, ab, abab, abababab, etc. To a and b, we associate the shapes:
The solid black lines indicate the curve that is drawn. The dotted blue line is for reference. The triangle is an isosceles right triangle. The productions in our L-system now represent a change in the geometry of these configurations. The solid black lines become dotted blue lines, while a solid black curve is drawn along smaller isosceles right triangles along the dotted blue lines. The two new configurations are
Figure 4: Production Rules for Dragon Curve
The first four generations of this L-system are displayed below, starting with the a triangle.
Figure 5: First Four Generations of Dragon Curve
As we carry out more and more generations, a wildly kinky curve known as the Dragon appears.
Figure 6: Dragon Curve Generation 10
We may start to see some beautiful emergent behavior in this dynamical system. The curve apparently loops back to close off many small squares. These squares cluster in a sequence of ``islands,'' each island connected to the next by a single strand. The limiting shape is the dragon fractal:
Mandelbrot [Man83] calls this the Harter-Heighway dragon; an extensive discussion of its properties can be found in [Gar67, DK70].
There is a natural dynamical process of ``folding'' at work in the
creation of the dragon curves. Start with a rectangular piece of paper
which we shall view from the edge. Fold the right half over the left
half, with a sharp crease down the middle. Take the folded paper and
fold again the same. Continue this folding process for a few more
generations. The appearance of the edge is shown on the left side of
the figure below. After a number
of folds, unfold the paper, and spread each fold to an angle of
exactly . The resulting edge curve is our dragon. The right
half of the figure shows the results for the first few generations.
There is another natural encoding of the dragons that we can see in the pictures. Following the curve from beginning to end, each turn is either to the left or to the right. Thus, each generation of the dragon corresponds to a sequences of L's (lefts) and R's (rights). In the next picture, we show generation 4 with all the turns labelled as L or R.
Figure 9: Generation 4 labelled with left and right turns
The corresponding sequences up to generation 4 are listed below.
1 fold | L |
2 folds | LLR |
3 folds | LLRLLRR |
4 folds | LLRLLRRLLLRRLRR |
There is a vague similarity to the Thue-Morse sequence. Indeed, there is a relationship, but it is fairly elaborate to work out; see [DFv82] for more details. The relation with the paperfolding process suggest many interesting variations on the dragon curve. For instance, instead of always folding the right half over the left, we may occasionally fold the left half over the right. Depending on the sequence of paperfolding instructions we get different dragon curves. Strictly alternating left and right folds produces a sequence of L's and R's that arose in a question of analysis (about trigonometric sums) first considered by Rudin and Shapiro (see [Rud59]).