Closed. This question is off-topic。它当前不接受答案。












想改善这个问题吗? Update the question,所以它是用于堆栈溢出的on-topic

7年前关闭。



Improve this question




我有 map 。在 map 层的顶部有一个多边形A和一个圆B。它们彼此相交。任何算法都可以计算交集C的面积。

最佳答案

假设您愿意近似一个圆(一个有很多边的多边形...),那么有很多算法可以计算多边形裁剪的结果(有关简短列表,请参阅here)。

一个简单的实现可以归结为:

  • 确定多边形A内哪些点集位于多边形B内,反之亦然
  • 确定穿过该内外边界的线段的交点,以及
  • 从收集的点集中构造一个新的多边形。要计算该新多边形的面积,您可以将其分解为三角形的集合并求和它们的面积。

  • 如果您不想完成所有工作,请尝试JS Clipper。这可能会使您的生活更轻松。

    如果您不愿意使用任意近似的圆,我认为您必须开始在多边形线段和圆的边界之间找到交点,然后分段集成每个部分。

    08-07 11:07