我正在根据数据渲染3D轮廓表面。我每隔几秒钟就会从实时监控中获取新数据,因此需要使用新数据进行重绘。我可以找到的所有示例仅显示了如何从固定数据渲染3D轮廓表面。
我找不到解释如何(清除,删除,擦除)网格或模型并重新绘制新数据的解释示例。
任何人都可以给我指出一个例子或解释如何使用新数据重绘3D轮廓表面。
答案 0 :(得分:-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); }
重建GeometryModel3D对象
遇到的第二个问题: 我使用了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个文件名(奇/偶)解决了这个问题。因此,其他所有调用都使用不同的文件名。