mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
Where the pixel at a sharp corner falls to the other colour, the outline cuts the corner in two one-pixel steps, and between two straight edges of three cracks or more subpixel::outline makes those steps one point (a notch). Whether the edges were long enough was measured on the whole loop. An edge can run on past a junction in one region's loop while the region across it, whose loop turns at that junction, sees a shorter edge: one side made the notch and the other did not, so the shared piece got different points on each side and the abutting curves left a gap. The notch now also requires the three cracks of each edge next to it to lie in the piece (no junction among them), as the corner-pixel shift correction above it already does. Test (code-drawn): noisy_colour_images_leave_no_sample_uncovered traces 20 seeded 36 px images of soft overlapping blobs in four colours plus pixel noise (Color, 5 colours, Noise 1 and 2, Paths 0/50/100) and needs every one of five sample points per pixel to lie in some path: 93 uncovered before (seeds 9, 11, 13), 0 after. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018tBcdwNhptqtmX32JCGFzB