繁体   English   中英

在 Helix Tool Kit 中显示多个点 3D

[英]Displaying multiple Point 3D s in Helix Tool Kit

我需要在 Helix View Port 中显示多个 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 Viewport 中的数据。 我需要在 UI 中显示多个数据点,而不是一一显示我现在正在做的事情。 我需要这样做的主要原因是尽量减少 UI 线程中的延迟。

HelixToolkitgithub上有很好的示例。

再考虑点..您可以在视图中使用PointsVisual3D并将 Point3D 的源集合绑定到属性 Points。

<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 线程的问题。 根本原因 - 更换相机 position 后,Helix 总是会重新绘制这个集合。 重绘在 UI 线程中执行。

为了提高表单上控件 rest 的响应速度 - 您可以尝试为您创建新线程 HelixViewPort3D(请参阅Dwayne Need 文章),但它不会显着提高重绘 3D 场景的速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM