diff --git a/lindenmayer-system/lindenmeyer-system.html b/lindenmayer-system/lindenmeyer-system.html index c5900aa..8ab6f9b 100644 --- a/lindenmayer-system/lindenmeyer-system.html +++ b/lindenmayer-system/lindenmeyer-system.html @@ -141,6 +141,40 @@ function sierpinski(noise) { p.strokeColor = '#ff00ff'; } + /************************************************ + * Hilbert Curve + ************************************************/ + + function hilbert() { + project.clear(); + var r = generate( + 'ImjJA', + [ + ['A', '-BF+AFA+FB-'], + ['B', '+AF-BFB-FA+'] + ], + 6 + ); + + var p = draw( + r, + { + 'F': draw_forward(), + 'I': draw_angle_init(Math.PI/2), + '-': draw_angle_turn(-1), + '+': draw_angle_turn(1), + 'j': draw_set_turn_noise(0.05), + 'J': draw_set_length_noise(0.1), + 'm': draw_forward(0.001), + } + ); + p.scale(5); + p.translate(new Point(200, 200)); + p.strokeWidth = 1; + p.strokeColor = '#ff00ff'; + } + + /************************************************ * Barnsley Fern @@ -249,6 +283,7 @@ function sierpinski(noise) { globals.dragon_curve = dragon_curve; globals.sierpinski2 = sierpinski2; globals.sierpinski = sierpinski; +globals.hilbert = hilbert; globals.barnsley_fern = barnsley_fern; globals.other_tree = other_tree; @@ -308,6 +343,10 @@ window.onload = function() { window.globals.sierpinski(0.2); }); + document.getElementById('hilbert').addEventListener('click', function() { + window.globals.hilbert(); + }); + document.getElementById('barnsley-fern').addEventListener('click', function() { window.globals.barnsley_fern(); }); @@ -333,6 +372,7 @@ window.onload = function() { +