2014-04-24 6 views
1

J'ai travaillé avec la géométrie Boost, principalement pour manipuler des polygones; J'utilisais la méthode intégrée centroïde (http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/centroid/centroid_2.html) pour calculer le centre géométrique (bary) de mes polygones, mais récemment après avoir sorti les coordonnées de mes points (composer un polygone spécifique) (et les analyser sur le côté avec des scripts Python) J'ai réalisé que le centroïde coordonne la méthode précédente en me donnant ne correspond pas à la moyenne géométrique des points du polygone.Boost :: geometry: calcul du centroïde d'un polygone

Je suis en deux dimensions et de le mettre en équations, je devrais avoir:

x_centroid = \frac{1}{number of points composing the polygon} \sum{point i} x_i 

et même pour les coordonnées y. Je soupçonne maintenant que ceci pourrait avoir à faire avec le fait que la bibliothèque de géométrie de poussée ne regarde pas seulement les points sur le bord du polygone (son anneau externe) mais le traitant comme un objet rempli.

Est-ce que quelqu'un d'entre vous a une certaine expérience dans la manipulation de ces fonctions?

BTW, je l'aide:

point my_center(0,0); 
bg::centroid(my_polygon,my_center); 

pour calculer le centre de gravité.

Merci.

Répondre

5

Dans Boost.Geometry l'algorithme proposé par Bashein et Detmer [1] est utilisé par défaut pour le calcul d'un centroïde de Géométries Areales.

La raison est que la méthode de moyenne simple échoue dans le cas où de nombreux sommets rapprochés sont placés d'un côté d'un polygone.


[1] Gerard Bashein et Paul R. Detmer. "Centroïde d'un polygone". Graphics Gems IV, Academic Press, 1994, pp. 3-6

+0

En effet, vous avez raison pour des sommets de longueurs vraiment différentes le barycentre des sommets peut être éloigné du centroïde du polygone (rempli). Dans mon cas, tous les sommets ont la même longueur et donc je n'envisageais jamais cela. Je vais utiliser ma propre méthode pour calculer uniquement sur les sommets. Merci pour la contribution pertinente et éclairante;) –

1

C'est ce que le centroïde est - la moyenne du nombre infini de points constituant le polygone rempli. On dirait que ce que tu veux n'est pas le centroïde, mais juste la moyenne des sommets. Incidemment, "moyenne géométrique" a une définition différente de celle que vous pensez, et n'est en aucune façon applicable à cette situation.

+0

Oui, en effet, «moyen géométrique» est déjà utilisé J'ai oublié cela. Je pensais à un «moyen/moyenne géométrique» et j'ai l'impression que vous avez toujours compris mon point de vue;) Merci pour votre contribution. –

1

centroïde du polygone est considéré comme le centre de masse de la figure plane (par exemple, feuille de papier), et non le centre de sommets seulement

Questions connexes