VTK可视化工具包之旅07-模型平面裁剪案例

482 阅读1分钟

然后这个掘金编辑器对于QT代码的处理方式另外失望。我也不知道是什么原因,我的电脑复制QT就一直有问题。所以这里我会使用截图的方式展现代码

本篇文章代码运行在QT环境上,使用VTK图像处理库。

实现效果

image.png

步骤拆分

  1. 加载点云模型
  2. 给点云模型添加包围盒
  3. 给包围盒对点云模型的操作添加交互事件
  4. 将点云盒包围盒加入到场景当中去
  5. 在QVTKWidget上运行程序

加载点云模型

  • 定义变量

image.png

  • 设置将VTK场景渲染到QVTK上面去

image.png

设置裁剪面相对于模型的位置

image.png

配置交互器和盒模型

image.png

配置交互类

image.png

VTK重点API讲解

  • vtkVertexGlyphFilter:vtkVertexGlyphFilter类的功能是创建一个多边形数据vtkPolyData,其中每个点都被创建了一个顶点Vertex;【丢弃单元 保留顶点,用来处理点云数据】
  • vtkPolyData:vtkpolydata用来表示顶点、线、多边形、三角形带在内的几何结构,即三维实体。
  • vtkClipPolyData:vtkClipPolyData使用用户指定的隐式函数(user-specified implicit function)或输入标量数据(input scalar data)剪裁多边形数据;vtkClipPolyData是一种Filter,接受vtkImplicitFunction派生出的任何子类或者标量数据集,vtkClipPolyData实现的剪切功能实际上“剪切”数据集的单元格,返回指定隐式函数(或大于标量值)内的所有内容,包括单元格的“片段”(将此与vtkExtractGeometry进行比较,该几何图形将拉出整个未切割单元格。)此筛选器的输出为多边形数据(vtkPolyData)。