我有一个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'?
答案 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结构)