Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算自身重叠的多重网格的总面积_C#_Unity3d - Fatal编程技术网

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

C# 如何计算自身重叠的多重网格的总面积,c#,unity3d,C#,Unity3d,我在Unity中有几个网格,它们有时重叠/相交 这些网格是平面的(z=0)。它可以是3种情况,如下图所示。每次我想计算总面积(图上标记为黑色) 我认为它可以做的基础上计算面积只采取外部点的组合网格?有没有人能提供一些关于如何做到这一点的例子 < P>我可以指给Weiler Atherton剪辑算法和C++实现< /P> 另一种替代方法(但我认为更耗时)是: 对多边形(较硬的部分)进行三角剖分,并用原始多边形的标签标记它们 计算所有三角形之间的交点列表(由于只需与两个三角形相交,因此更加容易)

我在Unity中有几个网格,它们有时重叠/相交

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

我认为它可以做的基础上计算面积只采取外部点的组合网格?有没有人能提供一些关于如何做到这一点的例子


< P>我可以指给Weiler Atherton剪辑算法和C++实现< /P> 另一种替代方法(但我认为更耗时)是:

  • 对多边形(较硬的部分)进行三角剖分,并用原始多边形的标签标记它们
  • 计算所有三角形之间的交点列表(由于只需与两个三角形相交,因此更加容易)
  • 计算与不同标签相交的三角形面积=>所需输出

  • 我可以指给Weiler Atherton剪辑算法和C++实现< /P> 另一种替代方法(但我认为更耗时)是:

  • 对多边形(较硬的部分)进行三角剖分,并用原始多边形的标签标记它们
  • 计算所有三角形之间的交点列表(由于只需与两个三角形相交,因此更加容易)
  • 计算与不同标签相交的三角形面积=>所需输出

  • 的确这个问题与网格或统一无关。。这是纯粹的计算。也许这是纯粹的计算,但我的问题是,在Unity中是否有任何内置的方法可以做到这一点。@Tamas Ionut Weiler Atherton裁剪算法是一个好主意,肯定是我目前唯一的一个。我来看看this@seek添加了另一个备选方案(比Weiler algo更简单)hi@TamasIonut“三角化多边形(较难的部分)”,事实上,由于这是在3D图形环境中进行的,因此您可以免费对形状进行三角化。事实上,请注意,获取“人类将看到的外部多边形”是一件乏味且有问题的事情。网格实际上是一个三角形列表,甚至不知道它是否(比如)平滑连接,更不用说它是否具有整体意义,例如外部边缘等。这个问题与网格或统一无关。。这是纯粹的计算。也许这是纯粹的计算,但我的问题是,在Unity中是否有任何内置的方法可以做到这一点。@Tamas Ionut Weiler Atherton裁剪算法是一个好主意,肯定是我目前唯一的一个。我来看看this@seek添加了另一个备选方案(比Weiler algo更简单)hi@TamasIonut“三角化多边形(较难的部分)”,事实上,由于这是在3D图形环境中进行的,因此您可以免费对形状进行三角化。事实上,请注意,获取“人类将看到的外部多边形”是一件乏味且有问题的事情。一个网格实际上就是一个三角形列表,甚至不知道它是否(比如)平滑连接,更不用说它是否具有整体意义,比如外部边缘等。我试图计算这些网格的表面积。你还需要解释什么?我可以确认Unity与形状交点计算之类的东西没有任何联系。请注意,“网格”在这里完全不涉及。你可能会使用这样的软件包,但令人困惑的是,这就是你感兴趣的那种3D数学。重点是我永远不知道这些物体的样子以及它们之间如何相交等等。在我的示例图片上,我试图画一些可能的情况,这些物体在这张图片上不是45度(但它们可以像这样)我试图计算这些网格的表面积。你还需要解释什么?我可以确认Unity与形状交点计算之类的东西没有任何联系。请注意,“网格”在这里完全不涉及。你可能会使用这样的软件包,但令人困惑的是,这就是你感兴趣的那种3D数学。重点是我永远不知道这些物体的样子以及它们之间如何相交等等。在我的示例图片上,我试图画一些可能的情况,这些物体在这张图片上不是45度(但它们可以像这样)