重叠圆圈的组合区域?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我最近遇到了一个问题,我有四个圆圈(中点和半径),并且必须计算这些圆圈的面积。

示例图像:

对于两个圈子来说很简单,

我可以计算不在三角形内的每个圆圈区域的分数,然后计算三角形的面积。

但是当有两个以上的圆圈时,我可以使用一个聪明的算法吗?

提问于
用户回答回答于

找出外围的所有圆形交点(例如下图中的B,D,F,H)。将它们与相应圆的中心连接在一起形成一个多边形。圆的并集面积是多边形的面积+由连续的交点定义的圆片的面积和它们之间的圆心。你还需要考虑任何漏洞。

用户回答回答于

  • 在圈子周围放一个边框;
  • 在边界框内生成随机点;
  • 确定随机点是否在一个圆圈内;
  • 通过一些简单的加法和除法来计算面积(proportion_of_points_inside * area_of_bounding_box)。

  • 你可以得到准确的答案,只要你想要的,只是产生更多的点;
  • 它可以用于你可以计算内部/外部区别的任何形状;
  • 它将会很好地并行,所以你可以使用你所有的内核。

扫码关注云+社区