找回密码
 注册
Simdroid-非首页
查看: 75|回复: 0

[08.其他] vtk曲面切面案例

[复制链接]
发表于 2019-3-12 15:47:36 | 显示全部楼层 |阅读模式 来自 江苏南京
本帖最后由 天洑软件 于 2019-3-27 17:14 编辑

Vtk,(visualization toolkit)是一个开源的免费软件系统,主要用于三维计算机图形学、图像处理和可视化。针对三维模型的切割,vtk提供了很多继承于vtkImpilicitFunction的类来方便人们进行操作。比如vtkBox,vtkSphere,vtkPlane等等,真是捏园捏扁任君挑选。

但是,即使vtk已经提供了很多API,依然不能解决所有问题。比如说当你想要针对一个区域做一个不规则曲面切割的时候怎么办?今天就来和大家分享一下笔者一些经验。对于这样的情况,vtk提供了一个类,叫做vtkImplicitDataset。它采用区域的数据集作为源数据,用曲面的数据集作为切割方式,实现了数据集之间的直接碰撞。但是,由于曲面的点不可能一直完美的和区域点击重合,所以就可能出现如下图一样的错误信息。

图1. 错误信息


“Can’t evaluate dataset!”这意味着vtkImplicitDataset中的点不能够计算出或者获得目标区域中的那些有意义的数组,如压力标量,速度矢量等。这或许是因为使用这个类来切割的话,并不能直接对点进行插值计算。

如果遇到这样的问题的时候,我们可以退一步,想办法获取点集的标量值之后,自己将它们重新组合成曲面。Vtk提供了vtkProbeFilter这个类来直接对点集进行处理。这个类能够进行插值,我们只需要最后将处理完的点集通过这个类输出到vtkDatasetMapper中就可以进行后续处理了。在这里值得注意的是vtkProbeFilter用目标区域数据集为源数据,只要求遵从vtkDataObject这个类就行了,而曲面数据集则作为inputData进行计算。

下图分别是目标立方体区域和曲面切割完的结果了。


图2. 目标立方体区域



        

图3. 不规则曲面切割结果


关注公众号“天洑CAE技术源”了解更多相关资讯


您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-19 08:38 , Processed in 0.029572 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表