## Lindenmayer systems (L-systems)

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,

...

Applet: Part of Koch flake

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