C# 在Helix工具箱中显示多点3D s
我需要在螺旋视图端口中显示多个3d点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
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场景的速度