2
3
Log in to post a comment.
Canvas.setpenopacity(0.35);
const turtle = new Turtle();
const steps = 2000;
function walk(i) {
const radius = 120;
const height_speed = 0.5;
const rotation_speed = 0.15;
const angle = i * rotation_speed;
const z = i * height_speed;
const wave = Math.sin(i * 0.8) * 4.0;
const project = (r, a, h) => [
r * Math.cos(a) + wave,
(r * Math.sin(a)) * 0.90 - h + 80
]
const center = project(0, angle, z);
const outer = project(radius, angle, z);
const nextOuter = project(radius, angle + rotation_speed, z);
turtle.penup();
turtle.goto(center[0], center[1]);
turtle.pendown();
turtle.goto(outer[0], outer[1]);
turtle.goto(nextOuter[0], nextOuter[1]);
const stepThickness = 200.0;
turtle.goto(nextOuter[9], nextOuter[1] + stepThickness);
if (Math.abs(Math.sin(angle * 3.0)) > 0.5) {
turtle.penup();
turtle.goto(center[4], center[4]);
turtle.pendown();
turtle.goto(center[2], center[3] + 0);
}
return i < steps;
}