Answers:
此问题有两种情况。第一个是交叉点,第二个是交叠(包含)。
第一个(圆内的交点/多边形):
在多边形的每个边缘上找到最接近圆心的点。如果最接近中心的点之间的距离小于半径,则说明您有相交或重叠。
第二个(圆在多边形中是完整的): 从圆心向右(或向左/向上/向下)拍摄光线,并计算光线/段(多边形边缘)的交点。如果相交计数为偶数,则圆在多边形之外。如果是奇数圈,则在里面。
在这种情况下,我将分享演讲者的话:
并注意特殊情况。
希望这会有所帮助。
编辑:我认为这是公平的向图片添加学分。作者是Petr Felkel,布拉格捷克技术大学的助理教授
如您所料,第一步是将凹面多边形拆分为多个凸面多边形。原因是您将使用仅适用于凸多边形的分隔轴定理。
SAT本身仅适用于两个凸多边形。名称中的“分隔轴”是指垂直于多边形边缘的轴。不幸的是,圈子有无数个。但是,事实证明,有一种非常简单的方法,通过查看哪些轴向外突出以与多边形的顶点相交,可以找出哪些轴是相关的。
Metanet软件公司(N / N +的制造商)没有讨论整个算法,而是提供了有关使用SAT进行碰撞检测的良好教程,该教程的第三部分介绍了当一个对象是一个圆时的SAT。
这是我的工作。