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.