【问题标题】:Intersection area of polygon and circle多边形和圆的交集面积
【发布时间】:2015-04-23 07:17:00
【问题描述】:

我想计算圆和多边形的相交面积(不是自相交)。有没有好的通用算法。

注意: 我尝试过的:起初我尝试用光线投射算法解决问题,我会在圆圈中找到点,然后识别区域。但随着情况变得更加困难和复杂的测试用例,这对我来说似乎更难了。

输入规范:圆心(x,y)和半径。多边形的顶点( {x1,y1} , {x2,y2} , {x3,y3} ... )。

更新:我越想我就越困惑。真的可以这样计算吗?

【问题讨论】:

  • 您所指的页面使用了 JavaScript。您的问题是如何将那里的代码转换为 C++?
  • 如果你可以将光线投射到一个圆圈中,答案是微不足道的。你能做到吗?
  • 您提供的链接为不同的问题提供了解决方案,即决定是否存在交叉点。这是您实际搜索的内容还是您想要计算圆形和多边形重叠的区域?
  • 感谢@UlrichEckhardt,其实我是在谷歌上搜索多边形和圆的交集区域的解决方案“并找到了这个页面。现在我已经更新了帖子。再次感谢clearfy我......跨度>
  • 我已经更新了问题陈述@ChristianHackl

标签: algorithm computational-geometry


【解决方案1】:

有两个步骤。首先,请注意这个问题对于triangles 来说很容易——因为没有陷阱。其次,请注意您可以将任何 N 多边形分解为 N 个三角形。这使情况变得容易得多。

任何圆都可以用公式 x^2 + y^2 = r^2 来描述。因此,您可以通过积分获得线的任何区域的轴区域。

我明天再填写,我现在要出去了。

【讨论】:

  • 酒精让他第二天忘记填写:P
  • @FutureCake 做到了。
猜你喜欢
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 2010-10-07
  • 2017-01-16
  • 2023-03-26
相关资源
最近更新 更多