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

数据更改时重新绘制WPF 3D图形,wpf,Wpf,我正在根据数据渲染三维轮廓曲面。我每隔几秒钟从实时监控中获得一次新数据,需要使用新数据重新绘制。我能找到的所有示例仅显示如何从固定数据渲染三维轮廓曲面 我找不到解释如何(清除、删除、擦除)网格或模型并使用新数据重新绘制的示例 谁能给我举个例子或者解释一下如何用新数据重新绘制3D轮廓曲面 我通过回答几个问题解决了这个问题 已删除Model3DGroup“main\u model\u 3D\u group”的所有子级 对于(int i=main\u model\u 3D\u group.Childr

我正在根据数据渲染三维轮廓曲面。我每隔几秒钟从实时监控中获得一次新数据,需要使用新数据重新绘制。我能找到的所有示例仅显示如何从固定数据渲染三维轮廓曲面

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


谁能给我举个例子或者解释一下如何用新数据重新绘制3D轮廓曲面

我通过回答几个问题解决了这个问题

  • 已删除Model3DGroup“main\u model\u 3D\u group”的所有子级

    对于(int i=main\u model\u 3D\u group.Children.Count-1;i>=0;i--) { if(主模型三维子组[i]为几何模型三维) 主模型组、儿童组、移除组(i); }

  • 重建GeometryModel3D对象

  • 将GeometryModel3D对象添加回主模型组的子对象
  • 遇到的第二个问题: 我用一个画笔得到了一个渐变色的表面材料。 ImageBrush.ImageSource会锁定该文件,因此无法使用新的颜色数据保存相同的文件名。 用以下函数解决了这个问题

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


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

    如果您知道如何计算网格,只需使用MVVM并将数据绑定到
    MeshGeometry3D