mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-11 07:13:46 +00:00
A Reshape drag on an open path moved only the anchors within half the diagonal of the path's bounding box, measured along the path. On a zigzag, a wave or a spiral that is one or two anchors, so dragging an end moved the end and left the rest of the path where it was (#2723). path.reshape now stretches an open path from the grabbed point to both ends. The end anchors stay in place. Each anchor between an end and the grabbed point takes u² (3 - 2u) of the drag, where u is its distance from that end along the control polygon divided by the grabbed point's distance from that end. A handle takes the share on the tangent line of that curve at its anchor, so the handles of a smooth anchor stay in line with it. A handle that is long beside the span takes a share below 0 or above 1. This changes the default for every caller that leaves radius out on an open path. A closed path still moves the anchors within half the diagonal of its bounding box, and a call that gives radius uses that radius on open and closed paths. - A negative radius is refused ("`radius` must be 0 or more"). It gave anchors beyond the radius a share above 1. - A drag of no length on an anchor no longer records an undo step. Docs: docs/mcp.md, docs/target-app-parity.md.