vtkCellArray 中点的排序是否意味着邻接?

does the ordering of the points in vtkCellArray imply adjacency?

我有一个折线形式的闭合轮廓。我正在访问该点 通过 vtkPolyData.GetLines() 并遍历 vtkCellArray.

我想计算直线每个顶点的角平分线。所以 我需要知道 V_{i-1}、V_i 和 V_{i+1}.

的坐标

在 vtkCellArray 中,[n0, p_1, p_2,... , p_n0, ... ] ,如果 p_2 出现在后面 单元格中的p_1,是不是表示p_1和p_2连在一起了?

是的,确实如此。只是为了用 vtkPolyLine 测试你的情况,让我们创建一个带有单个 vtkPolyLinevtkPolyData,其中线的最后一个点与第一个点相同。我们将看到生成的元胞数组具有相同的序列(即最后一个点和第一个点相同。)

import vtk as v

pts = v.vtkPoints()
pts.InsertNextPoint(0,0,0)
pts.InsertNextPoint(1,0,0)
pts.InsertNextPoint(2,0,0)
pts.InsertNextPoint(3,0,0)

polyLine = v.vtkPolyLine()
polyLine.GetPointIds().SetNumberOfIds(5)
polyLine.GetPointIds().SetId(0,0)
polyLine.GetPointIds().SetId(1,1)
polyLine.GetPointIds().SetId(2,2)
polyLine.GetPointIds().SetId(3,3)
polyLine.GetPointIds().SetId(4,0)

lines = v.vtkCellArray()
lines.InsertNextCell(polyLine)

pd = v.vtkPolyData()
pd.SetPoints(pts)
pd.SetLines(lines)

wr = v.vtkPolyDataWriter()
wr.SetFileName('Lines.vtk')
wr.SetInputData(pd)
wr.Write()

文件 Lines.vtk 包含以下内容:

# vtk DataFile Version 4.2
vtk output
ASCII
DATASET POLYDATA
POINTS 4 float
0 0 0 1 0 0 2 0 0 
3 0 0 
LINES 1 6
5 0 1 2 3 0 # This line has 5 points and last and first point are the same (0)