Lindenmayer systems, or in short L-systems, are based on formal language theory.
By an L-system can be understood the grammar rules for object generation.
The arranged ternary G=[T, N, S] is called a deterministic context-free L-system,
where:
T = {a, b, c,. } is the terminal symbol set
N = {A, B, C,.} is the non-terminal symbol set
S is a definite set of rules in the form
: X -> Y
![]()
Example: Define the Koch flake using L-system:
Take the L-system as the terminal symbol set :
| F | tortoise's movement forward |
| + | tortoise's rotation right |
| - | tortoise's rotation left |
| ( | storing the status into the buffer |
| ) | taking out the status from the buffer |
The non-terminal symbol N = {A}
Rules : 1. A => A + A - - A + A
2. A => f
Start: The starting symbol is: A A A and rotation: 60 degrees. Using these rules, we can obtain the following chains:
f--f--f,
f+f--f+f--f+f--f+f--f+f--f+f,
...
![]()
Other examples:
1. F-F++F+-F rotation angle = 65
2. F+-F++F-F rotation angle = 45
3. F-F+-F-F rotation angle = 35
4. F-F+F--F rotation angle = 45