Skip to content

macmyn/l-systems

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

L-Systems

About L-Systems

An L-system consists of:

  • An alphabet of different strings (e.g. "F","+","-")
  • Rules that specify how "letters" in the alphabet are replaced with other strings (e.g. F -> F+F-F)
  • An axiom which is the starting string upon which the rules act in successive iterations (e.g. FF-F)

Turtle interpretation

In this program, we visualise the strings generated by subsequent iterations of the using turtle interpretation. The character F instructs the turtle to move forward by 1 unit, + rotates the turtle by X degrees and - by rotates by -X degrees. This draws the L-system from the string. Branches are denoted by brackets [] and can be included in the rules to generate shapes with branching structures.

Creating and Visualising a basic L-System

To visualise an L-system in this program:

  • Add a rule set and define at least one rule using the characters in this alphabet at least once "F","+","-","[","]". Other characters can be used too, but will not be interpreted by the turtle.
    • Rules contain a key and a value. During an iteration the value will replace the key.
  • Set the number of iterations to a desired number - start lower as L-systems can very quickly become too large to compute in a reasonable timeframe.
  • Define the branching angle X.
  • Define the axiom.
  • Select the rule set and the axiom and press generate.

Creating a context sensitive L-System

Context sensitivity is where the string that replaces a "letter" depends on the surrounding letters. It is therefore a property of the rules of an L-system. To specify context sensitive rules, enter the rule key in this format "left-context<X>right-context". This will replace the letter X with the associated rule value only when X has left-context to the left and right-context to the right in the string. E.g. for the alphabet "F1","F0","+","-","[","]", the rule F0<F1>F0 -> +[F1F1]-F means F1 is replaced by +[F1F1]-F only when F0 is to the left and F1 is to the right.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages