Golden Spiral approximation
Log in to post a comment.
// You can find the Turtle API reference here: https://turtletoy.net/syntax
Canvas.setpenopacity(1);
const STEPS = 100;
const STEP_LENGTH = 0.1;
const GOLDEN_RATIO = 1.61803;
const SLEEP_TIME = 30;
function Spiral(rotation) {
const turtle = new Turtle();
turtle.penup();
turtle.goto(0,0);
turtle.pendown();
turtle.left(rotation);
let currentLength = STEP_LENGTH;
function sleep(ms = SLEEP_TIME) {
var date = new Date();
var curDate = null;
do { curDate = new Date(); }
while (curDate-date < ms);
}
function draw() {
turtle.circle(currentLength, -90);
currentLength *= GOLDEN_RATIO;
//sleep();
}
return {draw};
}
let spirals = [];
for (let i = 0; i < 360; i += 45) {
spirals.push(Spiral(i));
}
// The walk function will be called until it returns false.
function walk(i) {
// turtle.forward(currentLength);
// turtle.left(140);
spirals.forEach(s => s.draw());
//currentLength *= GOLDEN_RATIO;
return i < STEPS - 1;
}