如何检查多边形(也可以是不规则多边形)是否可以完全包含一定半径的圆?我不想在多边形内部实际画一个圆,而只是布尔结果(无论它是否适合)。对于用Java开发的应用程序,我需要这个。请注意,我并不是在寻找内切圆,而是多边形可以包含的最大圆。我想在同一区域可以有多个圈子。

有人可以共享算法或代码片段(任何语言都可以)还是可以引导我使用任何相关资源?

#1 楼

这可能比您希望的要复杂,但是:计算中间轴,该轴立即产生适合多边形内部的最大磁盘:
它们的中心是轴的顶点(度数\\ ge 3 $)(请参见下图中的
)。



Chin,Francis,Jack Snoeyink和Cao An Wang。 “在线性时间内查找简单多边形的中间轴。”离散和计算几何21.3(1999):405-420。









(图片来自Alexander Tsvyashchenko。)

另请参见,非凸多边形内的最大圆圈,是一种特殊的方法
(我未尝试验证其正确性)。