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

Lea*_*ess 1 geometry boost 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
Run Code Online (Sandbox Code Playgroud)

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

你们中的任何人都有操纵这些功能的经验吗?

顺便说一下,我使用:

point my_center(0,0);
bg::centroid(my_polygon,my_center);
Run Code Online (Sandbox Code Playgroud)

计算质心.

谢谢.

Ada*_*icz 5

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

原因在于,对于在Polygon的一侧放置许多紧密间隔的顶点的情况,简单平均方法失败.


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