Difference between revisions of "L-systems"

From JSXGraph Wiki
Jump to navigationJump to search
Line 219: Line 219:
 
<html>
 
<html>
 
<form><textarea id="inputtext4" rows=3 cols=35 wrap="off" style="width:600px;">
 
<form><textarea id="inputtext4" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 4;
 +
var axiom = 'X';
 +
var rules = {
 +
    'F' : 'F',
 +
    'X' : 'XFYFX+F+YFXFY-F-XFYFX',
 +
    'Y' : 'YFXFY-F-XFYFX+F+YFXFY',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                'X':' ',
 +
                'Y':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 90;
 +
var len = 300/Math.pow(3,level);
 
</textarea><br />
 
</textarea><br />
 
<input type="button" value="run" onClick="run(4)">
 
<input type="button" value="run" onClick="run(4)">
Line 229: Line 249:
 
</script>
 
</script>
 
</html>
 
</html>
 +
 +
 +
===Hexagonal Gosper curve===
 +
 +
<html>
 +
<form><textarea id="inputtext5" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 5;
 +
var axiom = 'XF';
 +
var rules = {
 +
    'F' : 'F',
 +
    'X' : 'X+YF++YF-FX--FXFX-YF+',
 +
    'Y' : '-FX+YFYF++YF+FX--FX-Y',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                'X':' ',
 +
                'Y':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 60;
 +
var len = 300/Math.pow(3,level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(5)">
 +
<input type="button" value="clear" onClick="clearturtle(5)">
 +
</form>
 +
<div id="box5" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[5] = JXG.JSXGraph.initBoard('box5', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[5] = new JSXTurtleObj(brd[5]);
 +
</script>
 +
</html>
 +
 +
===Plant 1===
 +
 +
<html>
 +
<form><textarea id="inputtext6" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 4;
 +
var axiom = 'F';
 +
var rules = {
 +
    'F' : 'F[+F]F[-F]F',
 +
    '[' : '[',
 +
    ']' : ']',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 25.7;
 +
var len = 200/Math.pow(3,level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(6)">
 +
<input type="button" value="clear" onClick="clearturtle(6)">
 +
</form>
 +
<div id="box6" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[6] = JXG.JSXGraph.initBoard('box6', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[6] = new JSXTurtleObj(brd[6]);
 +
</script>
 +
</html>
 +
 +
 +
===Plant 2===
 +
 +
<html>
 +
<form><textarea id="inputtext7" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 4;
 +
var axiom = 'X';
 +
var rules = {
 +
    'F' : 'FF',
 +
    'X' : 'F-[[X]+X]+F[+FX]-X',
 +
    '[' : '[',
 +
    ']' : ']',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                'X':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 22.5;
 +
var len = 300/Math.pow(3,level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(7)">
 +
<input type="button" value="clear" onClick="clearturtle(7)">
 +
</form>
 +
<div id="box7" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[7] = JXG.JSXGraph.initBoard('box7', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[7] = new JSXTurtleObj(brd[7]);
 +
</script>
 +
</html>
 +
 +
 +
===Hexagonal kolam===
 +
 +
<html>
 +
<form><textarea id="inputtext8" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 12;
 +
var axiom = 'X';
 +
var rules = {
 +
    'F' : 'F',
 +
    'X' : '[-F+F[Y]+F][+F-F[X]-F]',
 +
    'Y' : '[-F+F[Y]+F][+F-F-F]',
 +
    '[' : '[',
 +
    ']' : ']',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                'X':' ',
 +
                'Y':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 60;
 +
var len = 100/(level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(8)">
 +
<input type="button" value="clear" onClick="clearturtle(8)">
 +
</form>
 +
<div id="box8" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[8] = JXG.JSXGraph.initBoard('box8', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[8] = new JSXTurtleObj(brd[8]);
 +
</script>
 +
</html>
 +
 +
===Mango kolam===
 +
 +
<html>
 +
<form><textarea id="inputtext9" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 5;
 +
var axiom = 'A---A';
 +
var rules = {
 +
    'F' : 'F',
 +
    'f' : 'f',
 +
    'A' : 'f-F+Z+F-fA',
 +
    'Z' : 'F-FF-F--[--Z]F-FF-F--F-FF-F--',
 +
    '[' : '[',
 +
    ']' : ']',
 +
    '+' : '+',
 +
    '-' : '-'
 +
};
 +
var symbols = { 'F':'F',
 +
                'f':'f',
 +
                'A':' ',
 +
                'Z':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              } ;
 +
             
 +
var angle = 60;
 +
var len = 100/(level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(9)">
 +
<input type="button" value="clear" onClick="clearturtle(9)">
 +
</form>
 +
<div id="box9" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[9] = JXG.JSXGraph.initBoard('box9', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[9] = new JSXTurtleObj(brd[9]);
 +
</script>
 +
</html>
 +
 +
 +
===Penrose tiling===
 +
 +
<html>
 +
<form><textarea id="inputtext10" rows=3 cols=35 wrap="off" style="width:600px;">
 +
var level = 2;
 +
var Axiom = '[7]++[7]++[7]++[7]++[7]';
 +
var rules = {
 +
    '6' : '81++91----71[-81----61]++',
 +
    '7' : '+81--91[---61--71]+',
 +
    '8' : '-61++71[+++81++91]-',
 +
    '9' : '--81++++61[+91++++71]--71',
 +
    '1' : '',
 +
    '+' : '+',
 +
    '-' : '-',
 +
    '[' : '[',
 +
    ']' : ']'
 +
  };
 +
var symbols = {
 +
                '1':'F',
 +
                '6':' ',
 +
                '7':' ',
 +
                '8':' ',
 +
                '9':' ',
 +
                '+':'+',
 +
                '-':'-',
 +
                '[':'[',
 +
                ']':']'
 +
              };
 +
var angle = 36.0;
 +
var len = 100/(level);
 +
</textarea><br />
 +
<input type="button" value="run" onClick="run(10)">
 +
<input type="button" value="clear" onClick="clearturtle(10)">
 +
</form>
 +
<div id="box10" class="jxgbox" style="width:600px; height:600px;"></div>
 +
<script language="JavaScript">
 +
brd[10] = JXG.JSXGraph.initBoard('box10', {originX: 300, originY: 300, unitX: 1, unitY: 1});
 +
turtle[10] = new JSXTurtleObj(brd[10]);
 +
</script>
 +
</html>
 +
  
  
 
[[Category:Examples]]
 
[[Category:Examples]]
 
[[Category:Turtle Graphics]]
 
[[Category:Turtle Graphics]]

Revision as of 21:59, 30 December 2008

Sierpinski curve



Quadratic snowflake variation


Dragon curve


Islands and lakes



Peano curve



Hexagonal Gosper curve


Plant 1



Plant 2



Hexagonal kolam


Mango kolam



Penrose tiling