xxxxxxxxxx
59
//https://en.wikipedia.org/wiki/L-system
var array = ['A'];
var n = 0;
var turtle;
function setup() {
createCanvas(windowWidth, windowHeight);
background(220);
turtle = new Turtle(0,height);
}
function lSystem(input){
let l = input.length;
var output = [];
var rule;
for(var i = 0; i < l; i++){
if(input[i] == 'A'){
rule = ['-','B','F','+','A','F','A','+','F','B','-'];
} else if (input[i] == 'B'){
rule = ['+','A','F','-','B','F','B','-','F','A','+']
} else if (input[i] == 'F'){
rule = ['F']
} else if (input[i] == '-'){
rule = ['-']
} else if (input[i] == '+'){
rule = ['+']
}
for(let j = 0; j < rule.length; j++){
append(output,rule[j]);
}
}
return output;
}
function draw() {
//noLoop();
turtle.setWeight(1);
turtle.setLocation(0,height);
if(n == 8){
noLoop();
for(var j = 0; j < array.length; j++){
var rule = array[j];
if(rule == 'F'){
turtle.moveForward(10);
} else if(rule == '-'){
turtle.rotate(PI/2)
} else if(rule == '+'){
turtle.rotate(-PI/2)
}
}
}
array = lSystem(array);
n++;
}