升压::几何:多边形的重心计算(Boost::geometry : calculation of t

2019-09-26 12:49发布

我一直在使用Boost的几何形状,多为操纵的多边形; 我用的质心内置方法( http://www.boost.org/doc/libs/1_55_0/libs/geometry/doc/html/geometry/reference/algorithms/centroid/centroid_2.html ),用于计算所述几何(巴里)我的多边形的中心,但输出我点的坐标(合成特定的多边形)(并与一些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);

计算质心。

谢谢。

Answer 1:

在Boost.Geometry通过Bashein和Detmer [1]中提出的算法被用于地域几何的重心的计算中使用默认。

其原因是,简单平均方法对于其中许多紧密间隔的顶点被放置在多边形的一条边的情况下失败。


[1] 杰拉德Bashein和Paul R. Detmer。 “多边形的质心”。 图形宝石IV,学术出版社,1994年,第3-6页



Answer 2:

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

顺便说一句,“几何平均值”有比你想象不同的定义,而不是适用于这种情况的任何方式。



Answer 3:

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



文章来源: Boost::geometry : calculation of the centroid of a polygon