lindstrp.icn: Procedure to interpret L-system output as striped pattern

link lindstrp
March 25, 2002; Ralph E. Griswold
This file is in the public domain.

Lindenmayer systems are usually are interpreted as specifications
for drawing plant-like objects, fractals, or other geometric designs.
This procedure illustrates that L-systems can be interpreted in other
ways -- as striped patterns, for example.

The procedure is called as lindstrp(prod, band_tbl) where prod is a
"production" that is interpreted as being a sequence of one-character
symbols, and band_tbl is a table with these symbols as keys whose
corresponding values are specifications for bands of the form
"color:width". An example of a table for the symbols A, B, and C is:

     band_tbl := table()

     band_tbl["A"] := "blue:3"
     band_tbl["B"] := "red:10"
     band_tbl["C"] := "black:5"

With a table default of null, as above, symbols in prod that are not
table keys are effectively ignored.  Other table defaults
can be used to produce different behaviors for such symbols.

An example of a production is:

     "ABCBABC"

The result is a string of band specifications for the striped pattern
represented by prod.  It can be converted to an image by using
strplang.icn, but graphics are not necessary for the use of this
procedure itself.

One thing this procedure is useful for is developing an understanding
of how to construct L-systems for specific purpose:  L-systems for
plant-like objects and fractals are require specialized knowledge and
are difficult to construct, while stripes are simple enough for
anyone to understand and develop L-systems for.
____________________________________________________________

See also linden.icn and lindsys.icn.

Source code | Program Library Page | Icon Home Page