数据更改时WPF 3D图形重绘

时间:2018-11-10 15:31:12

标签: wpf

我正在根据数据渲染3D轮廓表面。我每隔几秒钟就会从实时监控中获取新数据,因此需要使用新数据进行重绘。我可以找到的所有示例仅显示了如何从固定数据渲染3D轮廓表面。

我找不到解释如何(清除,删除,擦除)网格或模型并重新绘制新数据的解释示例。

任何人都可以给我指出一个例子或解释如何使用新数据重绘3D轮廓表面。

1 个答案:

答案 0 :(得分:-1)

我已经通过几个回答的问题解决了这个问题。

  1. 删除了Model3DGroup'main_model_3D_group'的所有子项。

    for(int i = main_model_3D_group.Children.Count-1; i> = 0; i--) {     如果(main_model_3D_group.Children [i]是GeometryModel3D)     main_model_3D_group.Children.RemoveAt(i); }

  2. 重建GeometryModel3D对象

  3. 将GeometryModel3D对象添加回main_model_3D_group的子代中。

遇到的第二个问题: 我使用了ImageBrush来获得渐变的彩色表面材质。 ImageBrush.ImageSource会锁定文件,因此您无法使用新的颜色数据保存相同的文件名。 使用以下功能解决了这个问题;

public ImageSource BitmapFromUri(Uri source)
{
    bitmap.BeginInit();
    bitmap.UriSource = source;
    bitmap.CacheOption = BitmapCacheOption.OnLoad;
    bitmap.EndInit();
    return bitmap;

}

此功能使Uri源(xxx.PNG文件)处于未锁定状态,但是第二次调用不会重新加载文件(假定因为已缓存)。通过使用2个文件名(奇/偶)解决了这个问题。因此,其他所有调用都使用不同的文件名。