en.wikipedia.org/wik…_sierpinski_triangle
#fractal #lsystem
Log in to post a comment.
// Global code will be evaluated once. const turtle = new Turtle(-90,-75); // l-system function createLSystem(numIters, axiom) { let s = axiom; for (let i=0; i<numIters; i++) { s = processString(s); } return s; } function processString(oldStr) { let newstr = ""; for (let i=0; i<oldStr.length; i++) { newstr += applyRules(oldStr[i]); } return newstr; } function applyRules(ch) { switch (ch) { case "A": return "B-A-B"; // # Rule 1 case "B": return "A+B+A"; // # Rule 2 default: return ch; } } const inst = createLSystem(8, "A"); // number of iterations and axiom const distance = .7; const angle = 60; // The walk function will be called until it returns false. function walk(i) { const cmd = inst[i]; switch (cmd) { case "A": turtle.forward(distance); break; case "B": turtle.forward(distance); break; case "+": turtle.right(angle); break; case "-": turtle.left(angle); break; default: } return i < inst.length - 1; }