From d0a5128e0eb66f83041ec0e318bc1b56bad6e817 Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Sun, 20 Oct 2024 14:17:39 -0400 Subject: [PATCH] fix turtle/path rotation, add p5 canvas transformations to adapter from web frontend --- build/ludus.mjs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/build/ludus.mjs b/build/ludus.mjs index 63a4636..3ee0423 100644 --- a/build/ludus.mjs +++ b/build/ludus.mjs @@ -191,8 +191,11 @@ const turtle_angle = 0.385 const turtle_color = [255, 255, 255, 150] const p5_call_root = [ + ["push"], + ["rotate", Math.PI], + ["scale", -1, 1], ["background", ...resolve_color(background_color)], - ["stroke", ...resolve_color(turtle_init.pencolor)] + ["stroke", ...resolve_color(turtle_init.pencolor)], ] function rotate (vector, heading) { @@ -324,7 +327,8 @@ function p5_render_turtle (state, calls) { const [x2, y2] = rotate(origin, turtle_angle) const [x3, y3] = rotate(origin, -turtle_angle) calls.push(["translate", x, y]) - calls.push(["rotate", turn_to_rad(heading)]) + // need negative turtle rotation with the other p5 translations + calls.push(["rotate", -turn_to_rad(heading)]) calls.push(["noStroke"]) calls.push(["beginShape"]) calls.push(["vertex", x1, y1]) @@ -353,6 +357,7 @@ export function p5 (commands) { for (const call of calls) { p5_calls.push(call) } + p5_calls.push("pop") } p5_calls[0] = ["background", ...resolve_color(background_color)] p5_render_turtle(states[states.length - 1], p5_calls)