鼠标点击的绘制点

时间:2015-10-01 10:19:24

标签: c# wpf point helix-3d-toolkit viewport3d

我使用HelixToolkit查看STL文件并与之交互。我需要在窗口上绘制或标记用户点击的点。我有坐标,我知道在哪里画这一点,但我不知道如何绘制它,有人可以帮助我吗?我发布了一些代码来解释我现在的情况:

    private void vierport3d_MouseRightClick(object sender, MouseButtonEventArgs e)
    {
        Point mousePos = e.GetPosition(viewPort3d);
        PointHitTestParameters hitParams = new PointHitTestParameters(mousePos);
        VisualTreeHelper.HitTest(viewPort3d, null, ResultCallback, hitParams);
    }

public HitTestResultBehavior ResultCallback(HitTestResult result)
    {
        RayHitTestResult rayResult = result as RayHitTestResult;
        if (rayResult != null)
        {
            RayMeshGeometry3DHitTestResult rayMeshResult = rayResult as RayMeshGeometry3DHitTestResult;

            //HERE I HAVE THE LOCATION TO DRAW
            MessageBox.Show(rayMeshResult.PointHit.X + " " + rayMeshResult.PointHit.Y + " " + rayMeshResult.PointHit.Z);

            if (rayMeshResult != null)
            {
                // I THINK I HAVE TO DRAW THE POINT HERE
            }
        }

        return HitTestResultBehavior.Continue;
    }

PD:我在viewport3d上显示stl。

1 个答案:

答案 0 :(得分:0)

我们的项目中有相同的场景,并用一个球体直观地指出了这一点。

<ht:SphereVisual3D Radius="0.75" Fill="Red" Center="{Binding ContactPoint}" />

ContactPoint是Point3D类型。