Einfache 2d-polygon-triangulation

Versuchen zu triangulieren eine Reihe von einfache 2d-Polygone, habe ich dieses Algorithmus:

  • 1) Für jeden vertex im polygon berechnen Sie den Winkel zwischen den beiden Kanten verbunden
  • 2) Sortieren Sie Scheitelpunkte durch eine Verringerung Winkel in Bezug auf das innere des Polygons
  • 3), Wenn es weniger als 3 vertices in der Menge, wir sind fertig
  • 4) Nehmen Sie den letzten Eckpunkt in der Menge und Ausgabe-Dreieck durch ihn und seine zwei Nachbarn
  • 5) Entfernen Sie die vertex aus dem set
  • 6) Aktualisieren Sie die Winkel der beiden Nachbarn
  • 7) Springe zu 2

Ich habe es getestet, und fand es zu arbeiten, auch wirklich groß und kompliziert einfache 2d-polygon (es arbeiten nicht für ein polygon mit einem Loch oder selbst schneidende Polygone).

Gibt es Ausnahmefälle, die produzieren Entartete Ergebnis?

Funktioniert dieser Algorithmus ist eine bekannt?

Wenn nicht, möchte ich sicher sein, dass dieser Algorithmus ist rock-solid, aber ich habe nicht die mathematische hintergrund, um es zu beweisen.

Vielen Dank.

Schreibe einen Kommentar