Tried to think through line segment intersect some more, decided to just look it up, found top hits deeply annoyingly theoretical, went and stole something from Stack Overflow, kicked it around a little, and hey we got successful line segment intersections.
Which I'll be using mostly to do some fancier hatching stuff now, but also look at this nightmarish complete graph of the intersections of all these lines, what an exciting goddam mess these are
Approach: take a convex polygon (here I've got an unclosed triangle just as a placeholder), and start by finding a close bounding box around it. Then create a set of hatch lines, which we'll subsequently have to actually crop to the poly.
Works-ish for arbitrary polygons, as expected; behavior for either self-intersecting or non-convex polygons is not something this is intended to support, though maybe I'm getting away with self-intersecting anyway (so long as none of the discrete chunks are non-convex)?
I sat down to poke this but didn't really expect to get into sort of working shape tonight, and now I feel like I should pump the breaks and look at it tomorrow because I think I'm pretty much all out of brain already.
I say that but hey it seems like at least a basic support for non-convexity isn't so bad after all. Ain't perfect though.
In fact, throwing a intersections.sort() onto it seems to work really well. I think there's still some weird edge cases to discover but, huh.