重叠圆圈的组合区域
我最近遇到了一个问题,我有四个圆圈(中点和半径),并且必须计算这些圆圈的面积。
示例图像:
对于两个圈子来说很简单,
我可以计算不在三角形内的每个圆圈区域的分数,然后计算三角形的面积。
但是当有两个以上的圆圈时,我可以使用一个聪明的算法吗?
找出外围的所有圆形交点(例如下图中的B,D,F,H)。 将它们与相应圆的中心连接在一起形成一个多边形。 圆的并集面积是多边形的面积+由连续的交点定义的圆片的面积和它们之间的圆心。 你还需要考虑任何漏洞。
我确信有一个聪明的算法,但是这是一个愚蠢的算法,不必去寻找它;
确定它是愚蠢的,但是:
对于与前一个不同的解决方案,您可以使用四叉树以任意精度生成估计。
如果您可以确定方形是内部还是外部还是与形状相交,这也适用于任何形状联合。
每个单元格都有一个状态:空,全,部分
该算法包括以低分辨率(例如标记为空的4个单元)开始“绘制”四叉树中的圆圈。 每个单元格是:
完成后,可以计算区域的估计值:全部单元格给出下限,空单元格给出更高边界,部分单元格给出最大面积误差。
如果错误对您来说太大,您可以细化部分单元格,直到获得正确的精度。
我认为这比处理大量特殊情况需要的几何方法更容易实现。
链接地址: http://www.djcxy.com/p/84975.html