【问题标题】:Boost::geometry : calculation of the centroid of a polygonBoost::geometry : 计算多边形的质心
【发布时间】:2014-04-24 14:50:08
【问题描述】:

我一直在使用 Boost 几何,主要用于处理多边形;我正在使用 centroid 内置方法 (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);

计算质心。

谢谢。

【问题讨论】:

    标签: boost geometry boost-geometry


    【解决方案1】:

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

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


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

    【讨论】:

    • 确实,对于真正不同长度的顶点,您是正确的,顶点的重心可能远离(填充)多边形的质心。就我而言,所有顶点的长度都相同,所以我从来没有考虑过。我将使用我自己的方法仅在顶点上进行计算。感谢相关和启发性的贡献;)
    【解决方案2】:

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

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

    【讨论】:

    • 是的,'几何平均值'已经被使用了,我忘记了。我想到的是一个“几何平均值/平均值”,看起来你仍然理解我的观点;)谢谢你的贡献。
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2013-11-14
      • 2014-06-28
      相关资源
      最近更新 更多