2014-10-10 23 views
0

我有一個System.Windows.Media.Media3D.MeshGeometry3D對象,我需要從該對象中獲取所有三角形,如下所示。如何從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

您從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結構)

+0

謝謝@fratyx,它工作。 – 2014-10-13 05:35:28