1

Helix3d ツールキットを使用してモデルをインポートします。次に、3Dmodel でヒット テストを実行します。次に、rayMeshResult.Meshit から MeshGeometry3D 情報を取得します。最後に、頂点の位置情報と、MeshGeometry3D からの tripleIndices を取得します。ここで、LinesVisual3D からポイントを複製してから、triangleIndices/頂点情報を複製にフィードします。最後に、クローンのポイント データを LinesVisual3D.Points にコピーし、ビューポートにラインを追加します。

リンクの図からわかるように、立方体のすべてのエッジが描画されているわけではありませんが、すべての点がそこにあります。

http://www.freeimagehosting.net/fhws5

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);
4

0 に答える 0