diff --git a/lindenmayer-system/lindenmeyer-system.html b/lindenmayer-system/lindenmeyer-system.html
index 0bf6621..c5900aa 100644
--- a/lindenmayer-system/lindenmeyer-system.html
+++ b/lindenmayer-system/lindenmeyer-system.html
@@ -66,11 +66,12 @@ function dragon_curve(variant) {
* Sierpinski Triangle
************************************************/
-function sierpinski2(num_defects) {
+function sierpinski2(num_defects, noise) {
project.clear();
if(typeof num_defects == 'undefined') { num_defects = 0 };
+ if(typeof noise == 'undefined') { noise = 0 };
var r = generate(
- 'IA',
+ 'ImjJA',
[
['A', 'B-A-B'],
['B', 'A+B+A']
@@ -86,12 +87,16 @@ function sierpinski2(num_defects) {
}
var actions = {
+ // TODO properly initialize draw state and remove this
+ 'm': draw_forward(0.001),
'A': draw_forward(),
'B': draw_forward(),
'I': draw_angle_init(Math.PI/3),
'-': draw_angle_turn(-1),
'+': draw_angle_turn(1),
'*': draw_angle_add(0.001),
+ 'j': draw_set_turn_noise(noise/10),
+ 'J': draw_set_length_noise(noise),
};
var p = draw(r, actions);
p.scale(1.5);
@@ -104,10 +109,11 @@ function sierpinski2(num_defects) {
* Sierpinski Triangle
************************************************/
-function sierpinski() {
+function sierpinski(noise) {
+ if(typeof noise == 'undefined') { noise = 0 };
project.clear();
var r = generate(
- 'IF-G-G',
+ 'ImjJF-G-G',
[
['F', 'F-G+F+G-F'],
['G', 'GG']
@@ -123,6 +129,10 @@ function sierpinski() {
'I': draw_angle_init(2*Math.PI/3),
'-': draw_angle_turn(-1),
'+': draw_angle_turn(1),
+ 'j': draw_set_turn_noise(noise/10),
+ 'J': draw_set_length_noise(noise),
+ // TODO properly initialize draw state and remove this
+ 'm': draw_forward(0.001),
}
);
p.scale(5);
@@ -286,10 +296,18 @@ window.onload = function() {
window.globals.sierpinski2(10);
});
+ document.getElementById('sierpinski2-noise').addEventListener('click', function() {
+ window.globals.sierpinski2(0, 0.2);
+ });
+
document.getElementById('sierpinski').addEventListener('click', function() {
window.globals.sierpinski();
});
+ document.getElementById('sierpinski-noise').addEventListener('click', function() {
+ window.globals.sierpinski(0.2);
+ });
+
document.getElementById('barnsley-fern').addEventListener('click', function() {
window.globals.barnsley_fern();
});
@@ -312,7 +330,9 @@ window.onload = function() {
+
+