2

找到加载到 devDept Eyeshot 中的两个三维形状差异的最佳算法是什么?

我已经从 Eyeshot 中的 CAD 文件中加载了这两个形状,并希望突出显示形状的差异。

提前致谢。

4

1 回答 1

7

因此,这是一种快速的方法。(至少我认为你要的)这个函数将使用 meshA 并从中减去 meshB 的任何重叠体积。它返回一个网格列表,因为可以通过减去一个体积来将网格 A“切碎”成多个部分。我认为差异功能会按体积将片段组织到列表中,但我不是 100% 的。

public List<Mesh> solidSubtract(ref Mesh meshA, ref Mesh meshB)
{
  List<Mesh> subtractedMeshes = new List<Mesh>();
  Solid solidA = meshA.ConvertToSolid();
  Solid solidB = meshB.ConvertToSolid();
  Solid[] difference = Solid.Difference(solidA, solidB);
  foreach (Solid sld in difference)
  {
    subtractedMeshes.Add(sld.ConvertToMesh());
  }
  return subtractedMeshes;
}
于 2020-01-08T19:33:28.180 回答