我的形状是一个稍微凹入的多边形,我想知道最大直径。我想像多边形表面上两点之间的直线,这样直线就不会越过多边形外部。

我对2D感兴趣。我的形状是医学图像中的肿瘤。因此我们还可以假设:
1质心始终在多边形内。
2顶点密度高,即下一个顶点始终与前一个顶点接近。

评论

有旋转卡尺,但仅适用于凸多边形。否则,您可以将其用作蛮力解决方案的基础。

好吧,如果O(n ^ 2)没问题,那么测试所有点对

实际涉及的更多:想像一下由狭窄走廊连接的2个房间。最大直径将终止在不同房间的墙壁上,并且不会终止于任何点。

您是否正在寻找一种适用于大多数情况的算法,或者可以将其限制为例如2D情况?使用更多有关输入的信息或限制,可能更易于解决。您使用“多边形”一词可能仅暗示2D,而且您链接的问题也暗示了2D情况。另外,考虑顶点到顶点的距离是否足够?对于他的评论中提到的棘轮怪胎,您是否需要正确的结果?

另外,我担心C形的厚度很窄,但内部却很大。所以曲率半径很大它的直径(按照您的定义)将非常小,因为它只是跟随C曲率的一小段距离。然而,与内部尺寸一样大小的癌症结节却值得关注。所以也许是要计算其直径的凸包。

#1 楼

我对此没有确切的答案,因为答案远非微不足道。我建议您研究一下计算几何,因为这显然是可见性问题-我的猜测是已经存在解决方案。我自己的想法是:为多边形中的每个线段找到其他线段的可见部分,然后选择最远的一对点。鼓舞人心的链接:有关“可见性多边形”的维基百科。