Hi,
ich habe ein Programm, in dem Polygone ab und zu mal mit Schraffuren gefüllt werden müssen (so, wie das unter
http://wiki.evilmadscientist.com/Hatch_fill beschrieben ist). Meine Lösung sieht dabei so aus:
- wiederholt Linien über das Polygon legen, die jeweils um den Schraffurabstand versetzt sind
- Schnittpunkte der Linien mit dem Polygon ermitteln
- Linien von diesen Schnittpunkten erzeugen, 1. bis 2. Punkt -> Linie, 2. bis 3. Punkt -> keine Linie, 3. bis 4. Punkt -> Linie,..., damit werden auch "Löcher" in den Polygonen korrekt gefüllt
Mein Problem: diese Methode funktioniert mehr schlecht als recht. Wenn z.B. bei konkaven Polygonen ein Polygoneckpunkt genau mit einer Linie zusammenfällt, so erzeugt das einen einzelnen Schnittpunkt, der eigentlich ignoriert werden müsste (das ist aber nicht von dem Fall zu unterschieden, wenn die Schraffurlinie mit einem "normalen" Kantenpunkt des Polygons zusammenfällt, der nicht ignoriert werden darf). Ähnliches passiert, wenn eine Kante des Polygons exakt parallel zu einer Schraffurlinie verläuft.
Der Eggbot scheint eine schöne Hatchfunktion zu haben. leider ist die in Python, womit ich mich gar nicht auskenne.
Deswegen meine Frage: kennt jemand eine gut gehende C/C++-Bibliothek, die so eine Funktion bietet?
Danke!