找到加载到 devDept Eyeshot 中的两个三维形状差异的最佳算法是什么?
我已经从 Eyeshot 中的 CAD 文件中加载了这两个形状,并希望突出显示形状的差异。
提前致谢。
因此,这是一种快速的方法。(至少我认为你要的)这个函数将使用 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;
}