vtk中顶点和点之间的差异

时间:2016-05-22 18:56:30

标签: computational-geometry vtk

VTK中顶点和点之间的主要区别是什么?

好吧,我正在为vtkPolyData输出分配一些计算点:

vtkPolyData* oput = vtkPolyData::SafeDownCast(out_info->Get(vtkDataObject::DATA_OBJECT()));

我想知道是使用方法SetVerts(vtkCellArray *v)还是方法SetPoints(vtkPoints *)

3 个答案:

答案 0 :(得分:3)

在VTK数据集中(即,继承vtkDataSet的类,这是提供点概念的最简单数据类型),点只是空间中的位置。数据可以存储在空间中的位置或者表示点的轨迹的单元(例如,三角形或四面体)上。存储在单元格中的值在单元格轨迹中的每个点处都具有相同的值。

细胞由角点定义。在vtkPolyData中,每个单元格都由一个整数偏移列表定义到vtkPoints实例中的点坐标中。

VTK中的顶点是一个单元,其点轨迹是单个点。

可以在VTK数据集中明确列出未被任何单元格引用的点(例如,您可以在vtkPoints对象中指定不用作任何四面体,三角形或顶点单元格的角点的点坐标)。这些点只能有点数据(由vtkDataSet保存的vtkPointData实例中的数组存储)而不是单元格数据(由vtkDataSet保存的vtkCellData实例中的数组存储)。

因此,SetPoints()允许您提供点坐标,然后vtkCellArray实例引用它们来定义各种形状的点位置。一类形状是顶点(因此SetVerts()),而其他形状包括直线和折线(SetLines())和三角形/四边形(SetPolys())。

答案 1 :(得分:0)

我认为这取决于要点是什么。点只是可以看到的点,例如作为点云的一部分,而顶点是可以表示曲面或体积的三角形的一部分。

如果没有任何关于你意图的细节,我认为我们无法真正告诉你使用哪个。

答案 2 :(得分:0)

这个例子的第一部分可能类似于你所需要的:http://www.vtk.org/Wiki/VTK/Examples/Cxx/Picking/AreaPicking

通常你设置点然后你还需要分配顶点(或其他类型的单元格)以便有可视化的东西(你可以像在示例中那样手动分配它们,或者使用vtkVertexGlyphFilter)