C# 在Helix工具箱中显示多点3D s

C# 在Helix工具箱中显示多点3D s,c#,wpf,helix-3d-toolkit,C#,Wpf,Helix 3d Toolkit,我需要在螺旋视图端口中显示多个3d点 private void DisplayPointCloud(double[] datapoints) { newTime = stopwatch.Elapsed; foreach (double Datapoint in datapoints) { Point3D temp = new Point3D(Rand

我需要在螺旋视图端口中显示多个3d点

private void DisplayPointCloud(double[] datapoints)
    {

                newTime = stopwatch.Elapsed;
                foreach (double Datapoint in datapoints)
                {

                    Point3D temp = new Point3D(Random(), Random(), Datapoint);

            Dispatcher.Invoke(() =>
                    {
                        DataList.Add(temp);
                    });
                        
                }
       
        oldTime = newTime;
    }

我在一个单独的线程中显示Helix视口中的数据。我需要在UI中显示多个数据点,而不需要逐个显示我现在正在做的事情。我需要这样做的主要原因是最小化UI线程中的延迟。

HelixToolkit有一个很好的示例

再比赛点。。您可以在视图中使用PointsVisual3D,并将Point3D的源集合绑定到特性点

<h:HelixViewport3D x:Name="ViewPort3D" InfiniteSpin="True" ShowFrameRate="True">
            <h:DefaultLights />
            <h:PointsVisual3D Points="{Binding Points3DCollection}" Color="Red" Size="6" />
        </h:HelixViewport3D>

即使您决定从不同的非UI线程填充Points3DCollection,它也无法解决UI线程的问题。根本原因-Helix始终会在更改相机位置后重新绘制此集合。重绘在UI线程中执行

为了提高窗体上其余控件的响应速度,可以尝试为HelixViewPort3D创建新线程(请参见),但这不会显著提高重新绘制3D场景的速度