xxxxxxxxxx
73
var axiom = "F";
//var angle = 30;
// var rule = {
// a: "F",
// b: "FFX+[F+FF-FX]-[-F+XF-F]"
// }
var angle = -30;
var rule = {
a: "F",
b: "FF-[-F+F+F]+[+F-F-F]"
}
var sentence = axiom
var len = 10;
var rulesSet = {
a: "X",
b: "-F+[FF-F+FF]"
}
function generate() {
var next = ""
for (let i = 0; i < sentence.length; i++) {
let cur = sentence.charAt(i);
if (cur == rule.a) next += rule.b;
else next += cur;
}
sentence = next;
}
function turtle() {
background(51);
resetMatrix();
translate(width / 4, height);
stroke(255, 100);
for (var i = 0; i < sentence.length; i++) {
var cur = sentence.charAt(i);
switch (cur) {
case "F":
stroke(255, 100);
line(0, 0, 0, -len);
translate(0, -len);
break;
case "+":
rotate(angle);
break;
case "-":
rotate(-angle);
break;
case "[":
push();
break;
case "]":
// fill(255, 70, 70, 100);
// ellipse(0, 0, 8, 8);
pop();
break;
}
}
}
function setup() {
createCanvas(windowWidth, windowHeight);
angleMode(DEGREES);
turtle();
}
function mousePressed() {
generate();
turtle();
}