前言
vtkPolyData
数据是一种广泛使用的vtk数据结构,可以用来表示很多常用的数据结构,如点云数据、面片模型等。本文章先分析vtkPolyData数据的基本组成,创建方法和显示管线,结果介绍了一些基本操作,如距离、面积、包围盒、法向量以及符号化等。这些都是高级图像图像处理,此外还着中分析了图形平滑、封闭性检测、连通性分析、多分辨率处理、表面重建、点云配准、纹理映射等内容。掌握这些内容便可以解决许多实际性的工程问题。- 详细内容参见《VTK 图形图像开发进阶》第六章。该书得下载地址如下:
- 链接:https://pan.baidu.com/s/1hG9js6eZkTqL6Fh-b_C-Dg
- 提取码:cod8
vtkPolyData数据生成与显示
- vtkPolyData数据由几何结构数据、拓扑结构数据和属性数据组成。几何结构数据主要是组成模型的点集,拓扑结构数据是点按一定关系组成的单元数据,属性数据与几何结构数据和拓扑结构数据想关联,可以标量、向量、张量,可以用来间接表示图像的颜色。
GetNumberOfPoints()
和GetNumberOfCells()
可以分别获取图形的点数和单元数目;vtkPolyData
数据显示时需要定义vtkPolyDataMapper
对象,用来接受vtkPolyData
数据以实现图形数据到渲染图元的转换。
VTK常见的vtkPolyData数据源类
vtkPolyData数据的创建
- 需要先定义一个点集和一个单元集合,单元的类型可以是点、三角形、矩形、多边形等基本图形。只有定义了单元数据才能显示该图形数据。
- 具体创建代码见6.1.2节。
vtkPolyData属性数据
- 图形的颜色与
vtkPolyData
属性数据息息相关,可为点数据和单元数据分别指定属性数据。 - 点和单元属性数据分别存储咋
vtkPointData
和vtkCellData
中,可以通过调用GetCellData()
函数获取一个vtkCellData
类型单元数据指针,在通过SetScalars()
函数设置颜色数据。 - 由于可以同时设置点和单元设置属性,那么怎么用点和单元来控制颜色呢?这就需要使用
vtkPolyDataMapper
类的方法。- SetScalarModeToDefault(),默认设置,该设置下首先使用点的标量数据控制颜色,若点标量数据不可用时,则使用单元数据。
- SetScalarModeToUsePointData(),使用点的标量数据控制颜色,若