首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF 3D图形在数据更改时重绘

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

Stack Overflow用户
提问于 2018-11-10 23:31:12
回答 1查看 96关注 0票数 0

我正在从数据中渲染一个3D轮廓曲面。我每隔几秒钟就会从实时监控中获得新数据,并且需要使用新数据重新绘制。我能找到的所有例子都只是展示了如何从固定数据渲染3D轮廓面。

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

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

EN

回答 1

Stack Overflow用户

发布于 2018-11-13 02:26:06

我已经在几个回答问题的帮助下解决了这个问题。

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

for (int i= main_model_3D_group.Children.Count-1;i main_model_3D_group. 0;i--) { if (main_model_3D_group.Childreni is GeometryModel3D) main_model_3D_group.Children.RemoveAt(i);}

  • 重新构建GeometryModel3D对象

  • 将GeometryModel3D对象添加回Children.Count的子级

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

代码语言:javascript
复制
public ImageSource BitmapFromUri(Uri source)
{
    bitmap.BeginInit();
    bitmap.UriSource = source;
    bitmap.CacheOption = BitmapCacheOption.OnLoad;
    bitmap.EndInit();
    return bitmap;

}

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

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53240451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档