1

我一直在使用 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 坐标也是如此。我现在怀疑这可能与 boost 几何库不仅查看多边形边缘(其外环)上的点,而且将其视为填充对象有关。

你们中有人有操作这些功能的经验吗?

顺便说一句,我使用:

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

计算质心。

谢谢你。

4

3 回答 3

5

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

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


[1] Gerard Bashein 和 Paul R. Detmer。“多边形的质心”。Graphics Gems IV,学术出版社,1994 年,第 3-6 页

于 2014-04-24T16:31:47.833 回答
1

这就是质心——构成填充多边形的无数点的平均值。听起来您想要的不是质心,而只是顶点的平均值。

顺便说一句,“几何平均值”的定义与您想象的不同,并且无论如何都不适用于这种情况。

于 2014-04-24T15:25:55.940 回答
1

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

于 2014-04-24T15:26:43.267 回答