This is the central function for rewriting an initial string of symbols (the axiom) into a new string using production rules. Production rules are very simple: if the symbol is A, turn it into something. If it is B, turn it into something else. Production rules typically contain instructions about moving while drawing, moving w/o drawing, changing direction, or storing the current state for re-use later.
Lsys(init = NULL, rules = NULL, n = 5, retAll = TRUE, verbose = 1L)
A character string giving variables (symbols) to use as the initial string Also known as the axiom.
A data frame containing columns "inp" and "out". These contain the input
variables and the corresponding replacement string. See the examples in
drawLsys
.
An integer giving the number of cycles or iterations desired.
Logical. If TRUE
, the result at each cycle will be returned,
otherwise only the last result is returned.
An integer giving the level of information desired as the calculation
proceeds. verbose = 1L
gives basic information at each cycle.
Any value greater than 1 gives much more detail. Supress messages by using a value
less than 1.
If retAll = FALSE
, a character vector of length 1 giving the string
at the end processing. Otherwise, a character vector of length n + 1
containing init
plus the results at the end of each iteration.
The job of this function is to take an input "axiom" and apply the "production
rules" and other paramters to create a new string of drawing instructions. The
"language" or character set of the axiom and production rules are arbitary, and
the internet and literature contains many different examples. The same fractal
could be drawn using completely different sets of symbols. The string produced
by this function is processed by drawLsys
. See there for further
explanation and examples.
drawLsys
for examples, including plotting.