Besten Dank!
1. Einfache und einigermaßen stabile Methode:
Wähle eine Orientierung des Polygons, d.h. notiere jede Kante als einen Pfeil.
Wähle einen beliebigen Punkt, z.B. den Ursprung; am besten aber den Schwerpunkt des Polygons.
Bilde jeweils mit einer Kante und dem Punkt ein Dreieck. Die Orientierung der Kante gibt eine Orientierung des Dreiecks eindeutig vor, d.h. entweder math. positiv oder negativ (oder null).
Berechne je die Hälfte der Determinante zweier aufeinanderfolgender Kantenvektoren der Dreiecke mit dem Einheits-z-Vektor, d.h. für Kantenvektoren (x1,y1) und (x2,y2) berechne 0.5*det((x1 x2 0)(y1 y2 0)(0 0 1))=0.5*(x1*y2-y1*x2). Abhängig von der Orientierung wird diese positiv oder negativ. Sie ist der sog. orientierte Flächeninhalt des Dreiecks.
Summiere alle or. Fl. auf.
Das Schöne ist, dass diese Methode sogar bei konkaven und nicht einfachen (d.h. selbstüberschneidenden) Polygonen funktioniert.
Der Nachteil ist, dass sie für ungünstig gewählte Referenzpunkte schlechte Resultate liefern kann, und dass es für gewisse Polygone keine günstigen Referenzpunkte gibt.
2. Möglichkeit: Trianguliere das Innere des Polygons, z.B. mittels Algorithmus von Kong, Delaunay, advancing-front (... oder noch komplizierterer Verfahren). Summiere die Flächeninhalte aller Dreiecke auf. Nachteil: Viel zu kompliziert und aufwändig, wenn Du die Triangulierung nicht sowieso brauchst.
Grüße,
Niklas