Wpf 将三角形索引转换为Point3d,然后显示为直线

Wpf 将三角形索引转换为Point3d,然后显示为直线,wpf,3d,Wpf,3d,我使用Helix3d工具包导入模型。接下来,我在3Dmodel上执行命中测试。然后,我从rayMeshResult.Meshit获取网格几何3D信息。最后,我从网格几何3D中获取顶点位置信息和三角形索引。现在,我从LinesVisual3D克隆点,然后将三角形索引/顶点信息输入克隆。最后,我将克隆的点数据复制到LinesVisual3D.Points中,并将这些线添加到我的视口中 从链接处的图片中可以看到,并不是立方体的所有边都被绘制出来,但所有的点都在那里 GeometryModel3D h

我使用Helix3d工具包导入模型。接下来,我在3Dmodel上执行命中测试。然后,我从rayMeshResult.Meshit获取网格几何3D信息。最后,我从网格几何3D中获取顶点位置信息和三角形索引。现在,我从LinesVisual3D克隆点,然后将三角形索引/顶点信息输入克隆。最后,我将克隆的点数据复制到LinesVisual3D.Points中,并将这些线添加到我的视口中

从链接处的图片中可以看到,并不是立方体的所有边都被绘制出来,但所有的点都在那里

GeometryModel3D hitgeo=raymesult.ModelHit作为GeometryModel3D;
MeshGeometry3D newGeom=rayMeshResult.MeshHit作为MeshGeometry3D;
Point3DCollection srtpnt=modelLines.Points.Clone();
对于(int i=0;i
指向图像的链接似乎已断开。
GeometryModel3D hitgeo = rayMeshResult.ModelHit as GeometryModel3D;
MeshGeometry3D newGeom = rayMeshResult.MeshHit as MeshGeometry3D;
Point3DCollection srtpnt = modelLines.Points.Clone();

for (int i = 0; i < newGeom.TriangleIndices.Count; i ++)
{
    srtpnt.Add(newGeom.Positions[newGeom.TriangleIndices[i]]);
    textBlock4.Text += newGeom.Positions[newGeom.TriangleIndices[i]].ToString() + "\n";
}

modelLines.Points = srtpnt;
modelPoints.Points = srtpnt;

modelPoints.Color = Colors.Red;
modelPoints.Size = 15;

modelLines.Thickness = 6;
modelLines.Color = Colors.Blue;

MainViewport.ClearChildren();
MainViewport.Children.Add(modelLines);
MainViewport.Children.Add(modelPoints);
UpdateResultInfo(rayMeshResult);