如何从MeshGeometry3D获取所有三角形?

时间:2014-10-10 10:04:31

标签: c# wpf 3d mesh

我有一个System.Windows.Media.Media3D.MeshGeometry3D对象,我需要从该对象获取所有三角形,如下所示。

System.Windows.Media.Media3D.MeshGeometry3D m;
//
// code to generate mesh and assign to 'm'
//
foreach (var t in m.Triangles)  //there is no Triangles property, only TriangleIndices
{
    //t.p1, t.p2, t.p2  --> need all three points of a triangle
}

如何从网格中获取所有三角形' m'?

1 个答案:

答案 0 :(得分:2)

您可以从Position属性中获取三角形。此列表中连续三次的Point3D点代表一个三角形。例外:如果设置了TriangleIndices属性,则必须从此列表中获取三元组。此三元组中的每个条目都是“职位”列表中的索引。

因此,当位置列表为P0,P1,P2,P3,P4,P5时,您将获得三角形(P1,P2,P3),(P4,P5,P6)。

如果另外TriangleIndices列表是3,4,5,1,0,2,则得到三角形(P3,P4,P5),(P1,P0,P2)。 (Px是Point3D结构)