【问题标题】:Calculate area of split polygon计算分割多边形的面积
【发布时间】:2013-09-07 00:48:21
【问题描述】:

我需要用一条线分割一个多边形,类似于:How can I split a Polygon by a Line?,但我实际上并不关心生成的多边形,我只想知道该线每一侧的面积。

我知道我可以只进行分割并计算每个结果部分的面积,但我想知道如果我只需要面积,是否有更有效的算法。

例如,在下图中,黄色形状显示了一个原始多边形,而横跨它的线显示了我想要如何分割它。请注意,分割线始终在顶点之间,但不一定穿过整个多边形。 (注意:切割线似乎穿过第三个顶点的事实只是一个意外:可能是这样,但不一定如此)。

红色和绿色的形状显示了分割结果,我感兴趣的是红色多边形的总面积(或者绿色,无论哪种方式)

【问题讨论】:

  • 我认为没有比将多边形分割成块更有效的方法了。该区域确实取决于分割线穿过每条边的确切位置,因此您必须计算所有交点。而那无异于分裂。

标签: algorithm split geometry polygon


【解决方案1】:

如果你可以确定分割的交点,那么你可以计算第一个的面积,然后从总面积中减去它来确定第二个的面积。

【讨论】:

  • 确定交点很容易,但我不清楚如何使用它来找到任一侧的区域。
  • 如果我没记错的话,你已经可以计算多边形的面积了。您可以创建另一个多边形对象,您可以计算其面积,然后使用结果,您可以通过从总面积中减去第一个多边形的面积来计算另一个多边形的面积。这样,您将初始化一个多边形,并且您将拥有两个多边形的面积。
  • 对,这基本上就是我在问题中所说的。我链接到的另一个问题显示了如何从拆分中获取新的多边形,并且计算它们的面积很容易。我正在寻找一种无需确定新多边形即可计算面积的方法。
  • 不,“我知道我可以进行分割并计算每个结果部分的面积,但我想知道如果我只需要面积,是否有更有效的算法。”你说你可以计算每个多边形的面积。我的回答告诉您,您可以计算单个多边形的面积,然后通过从总面积中减去第一个多边形的面积来知道第二个多边形的面积。你的工作量是这种方式的一半。
  • 是的:“(或绿色,无论哪种方式)”有点暗示(或至少意味着)我理解从整体面积中减去一部分面积的前提为了得到另一部分的。但是,它并没有解决如何找到一个部分的面积这个最基本的问题。
猜你喜欢
  • 2013-11-13
  • 2013-10-24
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-07
  • 2020-08-23
  • 2013-03-25
相关资源
最近更新 更多