Bereich eine unregelmäßige Form
Ich haben eine Menge der Punkte, die liegt auf dem Bild. Diese Punkte, die form einer unregelmäßigen geschlossenen Form. Ich muss die Fläche dieser Form. Hat jeder Körper das ist der normale Algorithmus zur Berechnung der Fläche ? Oder ist es Unterstützung zur Verfügung, die in Bibliotheken wie boost? Ich bin mit C++.
- Beim nächsten mal versuchen, Math Overflow (mathoverflow.net) und dann kommen Sie wieder hier mit einer Frage in Bezug auf die Umsetzung des besten Algorithmus, den Sie geben Sie. Sie würde wohl bessere Ergebnisse bekommen.
- Math Overflow ist für Studien auf graduate-Ebene und über Fragen der Forschung. Diese Frage ist zu einfach und würde abgelehnt werden.
- Sie können versuchen Sie diesen link: wikihow.com/Calculate-the-Area-of-a-Polygon Hoffe, es hilft
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie ein polygon ist einfach (es muss nicht jeder Punkt in common-mit Ausnahme der Paare aufeinanderfolgender Segmente), dann ist wikipedia zu Hilfe kommt, Sie:
Die Formel für die Fläche ist
(es wird davon ausgegangen, dass der Letzte Punkt ist gleich der erste)
Können Sie ganz einfach umsetzen als
Natürlich Eckpunkte müssen bestellt werden, die entsprechend Ihrer natürlichen folgenden im polygon..
Gibt es eine summierungs-Formel für, die.
Möchten Sie vielleicht, um genauer zu sein, möglicherweise sogar der Bereitstellung einer grafischen Beispiel.
Zum Beispiel, wenn die Punkte, die Sie haben sind lediglich Pixel, dann die Anzahl der Pixel entspricht der Fläche. Aber wenn die Punkte sind die Ecken eines Polygons, dann wird die Fläche des Polygons ist nicht leicht zu bestimmen. Sie verwenden würde polygon-triangulation, und die Summe der Flächen der Dreiecke erhalten.
Hinweis: Wenn Sie nicht wissen, die Reihenfolge der Punkte und kann nicht garantieren, dass Ihr polygon ist konvex, es ist nicht möglich zu bestimmen, die Reihenfolge der Form, da es mehr als eine mögliche Reihenfolge der Punkte, die erzeugt ein polygon. Wenn Sie wissen, dass die polygon ist konvex, die Bestimmung der Reihenfolge der Punkte ist einfach. Lediglich die Sortierung der Punkte um den Winkel von einem bestimmten Punkt., mit dem ersten Punkt ist der, der eine Linie bildet zwischen sich selbst und der Ausgangspunkt, das alle anderen Punkte sind auf der gleichen Seite der Linie. Die Dreiecke gebildet, die durch dieses Verfahren kann auch verwendet werden, um die Fläche berechnet.
Gibt es Unterstützung für die Berechnung der Fläche von Polygonen in Boost.Geometrie (die ist noch nicht akzeptiert in der boost-und das ist sehr verwirrend, um zu verwenden).
Sonst würden Sie haben, um zu bestimmen, die ein polygon definiert durch Ihre ersten Punkte. Von den blicken von ihm, dass alle Eure Punkte sind Eckpunkte des Polygons, so ist dies einfach eine Frage der Bestellung Ihre Stelle setzt richtig. Eine andere Möglichkeit ist, dass Sie sich für die konvexe Hülle von Ihrem Punkt zu setzen (siehe http://en.wikipedia.org/wiki/Convex_hull_algorithms).
Ohne Bescheidenheit Verweise ich auf meine Antwort zu einer anderen Frage Gesamtfläche der überlappenden Kreisen. Monte Carlo ist robust, einfach-zu-parallelise und, schließlich, geben Sie eine Antwort, um die Genauigkeit, die Sie benötigen.
Der einfachste Weg, dies zu tun, ist wahrscheinlich zu triangulieren Ihre Form und berechnen Sie die Fläche der Dreiecke. Dave Eberly hat eine Bibliothek namens (Boost-Lizenz), die helfen können, mit der triangulation; weitere Informationen gibt es hier. Suchen TriangulateEC, zum Beispiel.