osc*_*arm 5 geometry computational-geometry geometry-surface
检查下面的蓝色圆圈是否完全包含在其他圆圈(圆圈)中的算法是什么.我希望蓝圈为TRUE,红圈为FALSE
所有圆的输入是它们的坐标和半径.
小智 3
这是一个粗略的解决方案:
对于每条边,跟踪创建它的圆。
对于您找到的每个区域 R 的每个边界边 E,取 E 所属的圆 C。如果C不是T(红色) - 即E是蓝色,检查R其他边缘上的点是否在C内部:
上图中,C包含B,所以R被覆盖;但C不包含A,所以不覆盖S
边例:
这个算法效率非常低,而且我不能100%确定是否还有退化的情况;如果有人有任何建议请告诉我。