← Commit history

0.9.300: Tour 3D motion recalibrated: the orbit drags totalled about a third of the viewer width and turned the board nearly edge-on (KiCad's trackball is roughly 0.1 degree per pixel). Now ~30 degrees of tilt and ~40 of yaw for the isometric, then three gentle orbits with zoom, slower and smoother for the recording.

John Lauer ·3883914dcf ·1mo ago ·parent 6d68ab1
1 file changed +11−5
handlers/demo_motion.py+11−5
@@ -139,14 +139,20 @@ def choreograph(hwnd: int, kind: str, abort=None, log=None) -> dict:         cx, cy, w, h = _canvas_center(hwnd)         dx, dy = int(w * 0.10), int(h * 0.08)         if kind == "3d":+            # Measured 2026-09-03 on a 3840 px wide viewer: four drags totalling+            # ~0.37 of the width turned the board nearly edge-on (KiCad's trackball+            # is roughly 0.1 degree per pixel). Isometric wants ~30 degrees of+            # tilt and ~40 of yaw, then gentle orbits that keep the board readable.+            tilt = int(h * 0.12)+            yaw = int(w * 0.03)             plan = [                 ("fit", lambda: key(VK_HOME)),-                ("isometric", lambda: drag("left", cx, cy, cx - int(w * 0.09), cy - int(h * 0.11), steps=18)),-                ("orbit-1", lambda: drag("left", cx, cy, cx + int(w * 0.10), cy, steps=22)),-                ("zoom-in", lambda: wheel(3, cx, cy)),-                ("orbit-2", lambda: drag("left", cx, cy, cx + int(w * 0.10), cy + int(h * 0.02), steps=22)),+                ("isometric", lambda: drag("left", cx, cy, cx - int(w * 0.035), cy - tilt, steps=28, dt=0.035)),+                ("orbit-1", lambda: drag("left", cx, cy, cx + yaw, cy, steps=30, dt=0.04)),+                ("zoom-in", lambda: wheel(2, cx, cy)),+                ("orbit-2", lambda: drag("left", cx, cy, cx + yaw, cy, steps=30, dt=0.04)),                 ("zoom-out", lambda: wheel(-2, cx, cy)),-                ("orbit-3", lambda: drag("left", cx, cy, cx + int(w * 0.08), cy, steps=22)),+                ("orbit-3", lambda: drag("left", cx, cy, cx - yaw, cy, steps=30, dt=0.04)),             ]         else:             plan = [