首页/文章/ 详情

CAx软件开发技术专题:后处理可视化常用算法

2年前浏览2628

后处理可视化是CAx软件的重要组成模块。开源代码VTK以其跨平台丰富的数据结构与算法可扩展性易用性等特点而逐渐成为了CAx软件后处理首选的技术方案。

虽然VTK提供了相对完备的后处理功能,但要用好这些后处理代码,却需要对相关后处理算法有一定研究和理解。

另外,随着问题规模激增与软硬件发展,大数据集问题与大规模计算逐渐成为了可视化研究的热点,涌现出了一系列全新的后处理可视化算法,非常有必要对这些新的研究成果予以分析总结。

因此,本文拟从应用角度总结了常用的相关算法。希望对从事国产CAx软件研发的朋友们有所帮助。

注1:限于笔者研究水平,难免有不当指出,欢迎批评指正。

注2:博文内容会不定期更新,欢迎关注与讨论。

一、等值线(面)生成算法

image.png

MarchingCube、FlyingEdges是常用的等值线(面)数值求解算法。

1.1 MarchingCube算法

MarchingCube算法是是W.Lorensen等人于1987年提出来的曲面重建技术,原理简单且容易实现,因此,得到了广泛的应用。

不失一般性,这里以六面体网格来说明MarchingCube算法的实现步骤:

  • 根据一定的规则遍历所有的单元;

  • 对于每一个单元,设Fi为顶点i处的场变量,q为等值线目标值,构造如下的符号函数

    image.png

        image.png

image.png

  •  针对不同的情况,在六面体单元内通过插值构造三角形面片。

对于二维问题,MarchingCube算法退化为MarchingSquare算法,算法相应地可以得到简化。

image.png

1.2 FlyingEdges算法

FlyingEdges算法是Kitware公司Schroeder W 等2015年公开的一套高效的等值面、等值线生成算法。

FlyingEdges算法流程为:

  • 沿着x方向生成顶点符号值,确定有效范围;

    image.png

  • 根据单元顶点符号值,查找MarchignCube分类表格,确定切割类型;

    image.png

  • 根据切割分类,配置存储空间等;

  • 生成切割点、切割面等数据;

二、流线生成算法

参考文献

Lorensen W E . Marching cubes : A hign resolution 3D surface construction algorithm[J]. Computer Graphics (Proceedings of SIGGRAPH'87), 1987, 21.

Schroeder W , Maynard R , Geveci B . Flying edges: A high-performance scalable isocontouring algorithm[C]. 2015 IEEE 5th Symposium on Large Data Analysis and Visualization (LDAV). IEEE, 2015.

Cabral B , Leedom L C . Imaging vector fields using line integral convolution[C]. Proceedings of the 20st Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH 1993. DBLP, 1993:263-270.

————————————————

科普理论通用ECADMCAD其他软件
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-05-24
最近编辑:2年前
YouQuan Soft
硕士 济南友泉软件有限公司
获赞 30粉丝 7文章 12课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈