Boost :: geometry:计算多边形的质心

时间:2014-04-24 14:50:09

标签: boost geometry boost-geometry

我一直在使用Boost几何体,主要用于操纵多边形;我使用质心内置方法(http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/centroid/centroid_2.html)来计算我的多边形的几何(bary)中心,但最近在输出我的点的坐标(组成一个特定的多边形)之后(并在侧面分析它们)用一些Python脚本)我意识到前一个方法的质心坐标给了我不对应多边形点的几何平均值。

我在两个方面并将其放入方程式中,我应该:

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

和y坐标相同。我现在怀疑这可能与升级几何库不只是看多边形边缘上的点(它的外环),而是将其视为填充对象这一事实有关。

你们是否有一些操作这些功能的经验?

是的,我用的是:

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

计算质心。

谢谢。

3 个答案:

答案 0 :(得分:5)

在Boost.Geometry中,Bashein和Detmer [1]提出的算法默认用于计算Areal Geometries的质心。

原因是简单的平均方法在多边形的一侧放置了许多紧密间隔的顶点的情况下失败。


[1] Gerard Bashein和Paul R. Detmer。“多边形的质心”。 Graphics Gems IV,Academic Press,1994,pp.3-6

答案 1 :(得分:1)

质心是什么 - 构成填充多边形的无数个点的平均值。听起来你想要的不是质心,而只是顶点的平均值。

顺便提一下,"几何平均值"有一个与你想象的不同的定义,并且不以任何方式适用于这种情况。

答案 2 :(得分:1)

多边形的质心被视为平面图的质心(例如,纸张),而不是顶点的中心

相关问题