mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-07 13:23:22 +00:00
The width between two width points was a straight line, so a variable-width stroke turned a corner at every width point. - Each side of a width profile now follows a monotone cubic (Fritsch-Carlson) through its points: no kink at a point, flat at a point wider or narrower than both neighbours, never past either point of a span. Points on one line stay on it and two-point tapers are unchanged; stacked points still step. - widest() counts each span's wider left and wider right, since the two sides needn't peak together. - The outliner samples straight runs between width points closely enough to follow the curve to the drawing tolerance (at most 64 samples per span and 4,096 per piece); straight spans get none. - Tests that expected straight-line widths now expect the curve. The stroke gradient coverage test uses Teardrop instead of Wave until #5964 is fixed.