loosely based on Advent of Code 2024 - 03
toboggans are apparently a thing
Log in to post a comment.
Canvas.setpenopacity(-1.0);
const t = new Turtle();
function draw_toboggan(x, y, dir, len, r, phi, w, step) {
t.jump(x, y);
t.seth(dir);
let N = Math.ceil(len / step);
for (let i = 0; i < N; i++) {
t.left(phi);
t.forward(w);
t.back(w);
t.right(phi);
t.penup()
t.forward(step);
t.pendown()
}
let n = Math.floor((Math.PI * r) / step);
for (let i = 1; i <= n; i++) {
let psi = phi + 180 / n * (i - 1);
t.left(psi);
t.forward(w);
t.back(w);
t.right(psi);
t.right(180 / n);
if (i < n) {
t.penup()
t.forward(step);
t.pendown()
}
}
}
let N = 9;
let R = 80;
for (let j = 0; j < 7; j++) {
for (let i = 0; i < N; i++) {
let phi1 = Math.PI / (2 * N) + Math.PI / N * 0.7 * j + 2 * Math.PI / N * i;
let phi1_deg = phi1 * 180 / Math.PI;
let tx1 = R * Math.cos(phi1);
let ty1 = R * Math.sin(phi1);
draw_toboggan(tx1, ty1, phi1_deg,
R, R * 0.23,
45 + phi1_deg,
R * 0.25, 1);
}
R *= 0.5
}