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

本文关键字:三角形 获取 MeshGeometry3D | 更新日期: 2023-09-27 18:26:12

我有一个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"中获取所有三角形?

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

您可以从Position属性获取三角形。此列表中Point3D点的连续三个表示三角形。异常:如果设置了TriangleIndices属性,则必须从该列表中获取三元组。这个三元组中的每个条目都是Position列表中的一个索引。

因此,当"位置"列表为P0、P1、P2、P3、P4、P5时,会得到三角形(P1、P2和P3)、(P4和P5、P6)。

如果附加三角形指示列表为3、4、5、1、0、2,则得到三角形(P3、P4、P5)、(P1、P0、P2)。(Px是Point3D结构)