Wie kann ich effizient feststellen, ob ein Polygon konvex, nicht konvex oder komplex ist?

Auf der man-Seite für XFillPolygon:

  • Wenn shape ist Komplexe, der Pfad kann selbstschneidend sein. Beachten Sie, dass zusammenhängende deckungsgleiche Punkte im Pfad werden nicht behandelt, wie self-Kreuzung.

  • Wenn shape ist Konvex, für jedes paar von Punkten innerhalb des Polygons, ist das Liniensegment verbindet Sie überschneidet sich nicht mit dem Pfad. Wenn vom AUFTRAGGEBER bekannt, Angabe Konvex können die Leistung verbessern. Wenn Sie angeben, Konvex für einen Weg, der nicht konvex ist, werden die Grafiken die Ergebnisse sind nicht definiert.

  • Wenn shape ist Nonconvex, den Pfad nicht selbst schneiden, sondern die Form ist nicht ganz konvex. Wenn vom AUFTRAGGEBER bekannt, Angabe Nonconvex statt Komplexe kann die Leistung verbessern. Wenn Sie angeben, Nonconvex für ein sich selbst Schneidender Pfad, der Grafik-Ergebnisse sind nicht definiert.

Bin ich performance Probleme mit füllen XFillPolygon und, wie die man-page schon andeutet, ist der erste Schritt, den ich nehmen will ist, geben Sie die richtige Form des Polygons. Ich bin derzeit mit Komplexe, um auf der sicheren Seite.

Gibt es einen effizienten Algorithmus, um festzustellen, ob ein polygon (definiert durch eine Reihe von Koordinaten) ist konvex, nicht konvex oder Komplex?

Kommentar zu dem Problem - Öffnen
Diese Frage angezeigt für Informationen über die überprüfung für komplexe/einfache Polygone: stackoverflow.com/questions/4001745/... Kommentarautor: Drew Noakes
FYI für die Googler: die richtige Antwort ist diese hier. Kommentarautor: Will Ness
zur info für alle: Antwort ist, nachdem einige der jüngsten updates, auch richtig!!!! Kommentarautor: Discrete lizard

InformationsquelleAutor der Frage hhafez | 2009-01-23

Schreibe einen Kommentar