如何计算自身重叠的多重网格的总面积

时间:2016-03-11 13:53:46

标签: c# unity3d

Unity中有很少的网格,有时会重叠/交叉。

这些网格是平的(z = 0)。它可以是如下图所示的3种情况。每次我想计算整个区域(图片上标记为黑色)

我认为它可以基于计算区域仅采用组合网格的外部点来完成?有没有人可以提供关于如何做到这一点的任何例子?

enter image description here

1 个答案:

答案 0 :(得分:2)

我可以向您指出Weiler-Atherton裁剪算法here和C ++实现here

另一种替代方法(但我认为更耗时)方法如下:

  1. 对多边形(较硬的部分)进行三角测量,并使用原始多边形的标签
  2. 标记它们
  3. 计算所有三角形之间的交集列表(因为您只需要交叉2个三角形,因此更容易)
  4. 计算与不同标签交叉的三角形区域=>所需的输出