Algorithm 计算分割多边形的面积

Algorithm 计算分割多边形的面积,algorithm,split,geometry,polygon,Algorithm,Split,Geometry,Polygon,我需要用一条线分割一个多边形,类似于这样:,但我实际上并不关心得到的多边形,我只想知道线两边的面积 我知道我可以进行分割并计算每个结果部分的面积,但我想知道如果我只需要面积,是否有更有效的算法 例如,在下图中,黄色形状显示一个原始多边形,穿过它的线显示了我想要如何分割它。请注意,分割线始终位于顶点之间,但不一定穿过整个多边形。(注意:切割线似乎通过第三个顶点的事实只是一个意外:可能是这样,但不一定如此) 红色和绿色的形状显示了结果的分割,我感兴趣的是红色多边形(或绿色多边形)的总面积 如果可以确

我需要用一条线分割一个多边形,类似于这样:,但我实际上并不关心得到的多边形,我只想知道线两边的面积

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

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

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


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

确定交点非常简单,但是我还不清楚如何用它来求任意一边的面积,如果我没弄错的话,你可以计算多边形的面积。可以创建另一个多边形对象并计算其面积,然后使用结果从总面积中减去第一个多边形的面积来计算另一个多边形的面积。这样你就初始化了一个多边形,得到了两个多边形的面积。对,这就是我在问题中所说的。我链接到的另一个问题显示了如何从分割中获得新的多边形,并且计算它们的面积很容易。我正在寻找一种不用确定新多边形就可以计算面积的方法。不,“我知道我可以进行分割并计算每个结果部分的面积,但我想知道如果我只需要面积,是否有更有效的算法。”你说你可以计算每个多边形的面积。我的答案告诉你,你可以计算出一个多边形的面积,然后从总面积中减去第一个多边形的面积,就知道了第二个多边形的面积。你这样做的工作量是一半。是的:“(或者绿色的,任何一种方式)”暗示(或者至少意味着)我理解从整体面积中减去一部分面积的前提,以便得到另一部分的面积。然而,它并没有解决如何找到一个零件的面积这一最基本的问题。我认为没有比将多边形分割成碎片更有效的方法了。面积确实取决于分割线与每条边交叉的确切位置,因此必须计算所有交点。这等于分裂。