mirror of
https://github.com/storytold/figcraft.git
synced 2026-11-08 19:42:05 +00:00
* M8: an ellipse whose start has gone round many turns keeps its sweep in .fig The importer clamped the starting and ending angles to ±1000 rad each before taking the sweep, so an arc starting near or past 1000 rad lost its sweep: a whole ellipse starting at 999 came back sweeping 1 rad, one starting at 1500 swept nothing. The sweep is now the difference of the angles as written, and a start past a turn is brought into [0, 2π) the way the renderer's sine and cosine see it. The .fig export writes the start within a turn too, where a 32-bit angle still holds it and the sweep. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * M8: an arc far from zero keeps its sweep rather than closing into a whole ellipse Review follow-up on #1891. The whole-turn tolerance grows with the angles, so once a start can lie far from zero it swallowed real arcs: an arc of 6.1 rad written at 1e6 rad read as a whole ellipse, and at 3e7 rad even a sweep of nothing did. The tolerance now only applies while it is at most 1e-3 rad (about 0.06°), which holds up to a start of about 4,000 rad; further out the sweep is kept as written. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * M8: an arc with no end stays whole however far out it starts Review follow-up on #1891. With no endingAngle the importer took the end as start + 2π and the sweep as the difference, which far from zero rounds away from a turn: from a start of 1e15 it came out 6.25, drawn as an arc with its radius edges now that the snap to a whole turn is bounded. No end now means a sweep of exactly 2π. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>