【发布时间】:2018-11-08 07:47:34
【问题描述】:
我正在使用多边形的质心在地图应用程序中附加标记。这对于凸多边形绝对适用,并且对于许多凹多边形非常好。
但是,某些多边形(香蕉、甜甜圈)显然不会产生所需的结果:在这些情况下,质心位于多边形区域之外。
有没有人知道更好的方法来在任何多边形区域(可能包含孔!)内找到合适的点来附加标记?
【问题讨论】:
-
一些应用程序在找到质心后会做一个多边形内的点。如果它在外面,则根据与多边形相交的射线的中点计算新的 x 或 y。
-
我认为你可以通过三角测量来做到这一点。例如,在第一步,对多边形进行三角剖分,然后尝试找到一个三角形,该三角形似乎是所需标准中的中心三角形并返回它的质心。
-
我会将凹多边形分割成凸部分(也许已经如此表示),取其中“最丰满”的部分(绝对直径大,最大直径/最小直径之比接近 1 ),并将点放在该部分的中心。不过,这可能需要大量的计算,所以我会考虑缓存结果,或者将它们与多边形一起存储。
-
您似乎在寻找离任何边界最远的点。在数学论坛上提问。
-
@ChristopheRoussy:没错!
标签: algorithm geometry center computational-geometry centroid