4
5
Log in to post a comment.
Canvas.setpenopacity(0.45);
const turtle = new Turtle();
const steps = 500;
function walk(i) {
const radius = 160;
const height_speed = 1.0;
const rotation_speed = 0.05;
const angle = i * rotation_speed;
const z = i * height_speed;
const wave = Math.sin(i * 0.1) * 15.0;
const project = (r, a, h) => [
r * Math.cos(a) + wave,
(r * Math.sin(a)) * 0.95 - h + 90
];
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 = 1.0;
turtle.goto(nextOuter[0], nextOuter[1] + stepThickness);
if (Math.abs(Math.sin(angle * 3.0)) > 0.9) {
turtle.penup();
turtle.goto(center[4], center[1]);
turtle.pendown();
turtle.goto(center[2], center[1] + 20);
}
return i < steps;
}