L-systems: Difference between revisions
From JSXGraph Wiki
A WASSERMANN (talk | contribs) No edit summary |
No edit summary |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 7: | Line 7: | ||
For each system a maximum ''level'' is defined. If this value is increased, the complexity of the drawing rises and running time increases, too. | For each system a maximum ''level'' is defined. If this value is increased, the complexity of the drawing rises and running time increases, too. | ||
===Examples=== | |||
Most of the examples are from the book by Przemyslaw Prusinkiewicz and James Hanan: ''Lindenmayer Systems, Fractals, and Plants'', see the References. | Most of the examples are from the book by Przemyslaw Prusinkiewicz and James Hanan: ''Lindenmayer Systems, Fractals, and Plants'', see the References. | ||
====First Example: Sierpinski curve==== | |||
===Sierpinski curve=== | |||
<html> | <html> | ||
<link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" /> | <link rel="stylesheet" type="text/css" href="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraph.css" /> | ||
<script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script> | <script type="text/javascript" src="http://jsxgraph.uni-bayreuth.de/distrib/jsxgraphcore.js"></script> | ||
<form><textarea id="inputtext0" rows= | <form><textarea id="inputtext0" rows=15 cols=35 wrap="off" style="width:600px;"> | ||
var level = 6; | var level = 6; | ||
var axiom = 'A'; | var axiom = 'A'; | ||
Line 38: | Line 37: | ||
<input type="button" value="clear" onClick="clearturtle(0)"> | <input type="button" value="clear" onClick="clearturtle(0)"> | ||
</form> | </form> | ||
< | </html> | ||
<jsxgraph width="600" height="600" box="box0"> | |||
var t; | var t; | ||
var turtle = []; | var turtle = []; | ||
var brd = []; | var brd = []; | ||
brd[0] = JXG.JSXGraph.initBoard('box0', { | brd[0] = JXG.JSXGraph.initBoard('box0', {boundingbox: [-300, 300, 300, -300]}); | ||
turtle[0] = brd[0]. | turtle[0] = brd[0].create('turtle'); | ||
function expander(level,axiom,rules) { | function expander(level,axiom,rules) { | ||
Line 107: | Line 106: | ||
function run(nr) { | function run(nr) { | ||
brd[nr].suspendUpdate(); | brd[nr].suspendUpdate(); | ||
var code = | var code = document.getElementById('inputtext'+nr).value; | ||
if (code=='') { return; } | if (code=='') { return; } | ||
t = turtle[nr]; | t = turtle[nr]; | ||
Line 121: | Line 120: | ||
turtle[nr].cs(); | turtle[nr].cs(); | ||
} | } | ||
</ | </jsxgraph> | ||
====More examples==== | |||
* [[Quadratic snowflake variation]] | * [[Quadratic snowflake variation]] | ||
* [[Dragon curve]] | * [[Dragon curve]] | ||
Line 132: | Line 131: | ||
* [[Plant generation II]] | * [[Plant generation II]] | ||
* [[Hexagonal kolam]] | * [[Hexagonal kolam]] | ||
* [[Mango kolam]] | |||
* [[Penrose tiling]] | |||
===The underlying JavaScript code=== | ===The underlying JavaScript code=== | ||
Line 258: | Line 141: | ||
* [http://en.wikipedia.org/wiki/L-system http://en.wikipedia.org/wiki/L-system] | * [http://en.wikipedia.org/wiki/L-system http://en.wikipedia.org/wiki/L-system] | ||
* [http://en.wikipedia.org/wiki/Space-filling_curve http://en.wikipedia.org/wiki/Space-filling_curve] | * [http://en.wikipedia.org/wiki/Space-filling_curve http://en.wikipedia.org/wiki/Space-filling_curve] | ||
* [http:// | * [http://www.biologie.uni-hamburg.de/b-online/e28_3/lsys.html An Introduction to Lindenmayer Systems] | ||
Latest revision as of 07:59, 8 June 2011
Online experiments with Lindenmayer Systems
A Lindenmayer System consists of
- an initial string called axiom
- a set of rewriting rules
This is an experimental page, where the Lindenmayer Systems can be changed online. The visualization is done by the JavaScript library JSXGraph. For each system a maximum level is defined. If this value is increased, the complexity of the drawing rises and running time increases, too.
Examples
Most of the examples are from the book by Przemyslaw Prusinkiewicz and James Hanan: Lindenmayer Systems, Fractals, and Plants, see the References.
First Example: Sierpinski curve
More examples
- Quadratic snowflake variation
- Dragon curve
- Islands and lakes
- Peano curve
- Hexagonal Gosper curve
- Plant generation I
- Plant generation II
- Hexagonal kolam
- Mango kolam
- Penrose tiling
The underlying JavaScript code
The underlying JavaScript code for producing Lindenmayer systems
References
- Przemyslaw Prusinkiewicz, James Hanan: Lindenmayer Systems, Fractals, and Plants (Lecture Notes in Biomathematics). Springer-Verlag 1989, ISBN 0-387-97092-4
- http://en.wikipedia.org/wiki/L-system
- http://en.wikipedia.org/wiki/Space-filling_curve
- An Introduction to Lindenmayer Systems