2014-04-24 168 views
1

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

我在两个维度,并把它代入方程,我应该有:

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); 

来计算质心。

谢谢。

回答

5

在Boost.Geometry通过Bashein和Detmer提出的算法[1]所使用的默认用于计算面积几何的质心。

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


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

+0

事实上,对于顶点的重心可能远离(填充的)多边形的质心的情况,对于真正不同长度的顶点而言,顶点的重心可能会很远。 在我的情况下,所有的顶点具有相同的长度,所以我从来没有考虑过。我将使用我自己的方法仅在顶点上进行计算。感谢相关的启发性贡献;) –

1

质心就是这样 - 构成填充多边形的无限多个点的平均值。这听起来像你想要的不是质心,而只是顶点的平均值。

顺便提一下,“几何平均数”的定义与您想象的不同,并不以任何方式适用于这种情况。多边形的

+0

是的,'几何意义'已经被使用了,我忘记了这一点。我记住的笏是'几何平均值/平均值',看起来你仍然理解我的观点;)感谢你的贡献。 –

1

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

相关问题