fix: enlarge every sub-2px stroker width to 2px, per Daniel's ruling

Knob track arc, inner-dial needle, and mini velocity-trace all sat below the analytic stroker's opaque-core floor. Raised to 2px; updated visual-design-language.md and core/ui/CLAUDE.md to match; kept the 1px-behavior test, corrected its stale comment.
This commit is contained in:
2026-08-01 15:11:58 -04:00
parent 07628a2059
commit 704b7ef373
5 changed files with 16 additions and 11 deletions
+3 -2
View File
@@ -91,8 +91,9 @@ static void testSubOpaqueCoreAtOnePixelWidth() {
// Below the >= 2 px opaque-core threshold: a 1 px stroke (halfWidth = 0.5) has zero slack
// against the 0.5 px worst-case pixel-centre distance (core/ui/CLAUDE.md), so peak alpha
// tracks the stroke's alignment to the pixel grid instead of reaching 255 everywhere. Pin
// both ends of that modulation — this is the knob track arc's and the mini curve-trace's
// actual behaviour, not a hypothetical.
// both ends of that modulation — no shipping surface draws at 1 px anymore (Daniel's
// ruling, 2026-08-01), but this stays a real property of the stroker worth guarding
// against reintroducing.
const StrokePoint onRowCentre[2] = {{20.0f, 100.5f}, {220.0f, 100.5f}}; // centred on row 100
StrokeCanvas aligned;
strokePolyline(aligned, onRowCentre, 2, 0.5f, kBig);