【问题标题】:Check if circles completely cover an area检查圆圈是否完全覆盖一个区域
【发布时间】:2013-10-23 12:38:12
【问题描述】:

从任意矩形开始,用户可以在其中放置任意数量的圆圈。 圆圈可以不受限制地相互重叠。

圆圈可以有不同的大小。

测试矩形是否完全被圆圈覆盖的最佳方法是什么?

【问题讨论】:

  • 圆是否可以延伸到矩形之外?
  • 只要圆圈的某些部分在矩形内,它们就可以了。

标签: objective-c algorithm geometry


【解决方案1】:

这似乎是一个非常棘手的算法,但幸运的是之前有人考虑过它:)

检查这个问题:

https://cs.stackexchange.com/questions/11163/circles-covering-a-rectangular-how-to-verify-it

好像和你有同样的问题。

【讨论】:

  • 这确实是一个有趣(而且可能很有帮助)的链接,但(据我了解)答案 应该始终包含最相关的信息,而不仅仅是一个链接。
  • 链接的问题/答案假定所有圆的半径相等。
【解决方案2】:

我最终发现 JS 和 Objective-C 中最简单的解决方案(无论如何对我来说)是简单地迭代每个像素并检查颜色(假设圆圈是彩色的)并检查它是否是圆圈(或它的边界)。一旦找到一个圆圈的颜色,迭代就会停止,因为该区域显然没有被形状完全覆盖。

此解决方案的优点是实际形状无关紧要(我们最终还添加了其他形状)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多