Den Schwerpunkt eines Polygons finden?
Um die Mitte, ich habe versucht, für jeden vertex, hinzufügen, um die Summe dividieren Sie durch die Anzahl der Scheitelpunkte.
Habe ich auch versucht zu finden, die oberste, Unterste -> get Mittelpunkt... finden Sie ganz Links, ganz rechts, finden Sie den Mittelpunkt.
Beide nicht zurück die perfekte Mitte, da bin ich unter Berufung auf das center skaliert ein polygon.
Möchte ich meine Waage Polygone, so kann ich einen Rahmen um Sie herum.
Was ist der beste Weg zu finden, den Schwerpunkt eines Polygons gegeben, dass das polygon kann konkav, konvex und haben viele, viele Seiten von verschiedenen Längen?
InformationsquelleAutor der Frage jmasterx | 2010-05-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Formel ist gegeben hier.
Für diejenigen, die Schwierigkeiten beim Verständnis der sigma-notation in den Formeln, hier ist C++ - code zeigt, wie man die Berechnung:
Habe ich nur getestet, die für ein quadratisches polygon in der oberen rechten x - /y-Quadranten.
Wenn Euch das nichts ausmacht, die mindestens zwei (potenziell teure) extra-modulus-Operationen in jeder iteration, dann können Sie vereinfachen den vorherigen
compute2DPolygonCentroid
- Funktion, um die folgenden:InformationsquelleAutor der Antwort Emile Cormier
Den Schwerpunkt berechnet werden kann als die gewichtete Summe der centroide der Dreiecke, es können partitioniert werden.
Hier ist die C-source-code für einen solchen Algorithmus:
Gibt es eine polygon-centroid Artikel auf der CGAFaq (comp.Grafik.algorithmen FAQ) wiki erklärt es.
InformationsquelleAutor der Antwort Firas Assaad
InformationsquelleAutor der Antwort Arlen
Brechen Sie in Dreiecke, finden Sie den Bereich und Schwerpunkt der einzelnen, die dann die Berechnung der Durchschnitt aller in der partiellen centroide über die Teilbereiche, die als GEWICHTE. Mit Konkavität einige der Bereiche, könnte negativ sein.
InformationsquelleAutor der Antwort Ben Voigt