Ven*_*nom 4 vtk computational-geometry
VTK 中顶点和点的主要区别是什么?
好吧,我正在为vtkPolyData输出分配一些计算点:
vtkPolyData* oput = vtkPolyData::SafeDownCast(out_info->Get(vtkDataObject::DATA_OBJECT()));
Run Code Online (Sandbox Code Playgroud)
我想知道是使用方法SetVerts(vtkCellArray *v)还是方法SetPoints(vtkPoints *)。
小智 7
在 VTK 数据集中(即继承 vtkDataSet 的类,这是提供点概念的最简单的数据类型),点只是空间中的位置。数据可以存储在空间中的位置或表示点轨迹的单元格(例如,三角形或四面体)上。存储在单元格中的值在单元格轨迹中的每个点都具有相同的值。
单元格由它们的角点定义。在 vtkPolyData 中,每个单元格都由一个整数偏移列表定义为 vtkPoints 实例中的点坐标。
VTK 中的顶点是一个单元,其点轨迹是单个点。
可以在 VTK 数据集中明确列出不被任何单元格引用的点(例如,您可以在 vtkPoints 对象中指定不用作任何四面体、三角形或顶点单元格的角点的点坐标)。这些点只能有点数据(由 vtkDataSet 持有的 vtkPointData 实例中的数组存储)而不是单元数据(由 vtkDataSet 持有的 vtkCellData 实例中的数组存储)。
因此,SetPoints()让您提供点坐标,然后 vtkCellArray 实例引用这些坐标来定义各种形状的点轨迹。一类形状是顶点(因此SetVerts()),而其他形状包括直线和折线(SetLines())以及三角形/四边形(SetPolys())。