我有一条折线形式的闭合轮廓。我正在访问重点 通过vtkPolyData.GetLines()并遍历其中的单元格 vtkCellArray。
我想计算线的每个顶点处的角平分线。因此 我需要知道V_ {i-1},V_i和V_ {i + 1}的坐标。
在vtkCellArray中,如果p_2在后面,则[n0,p_1,p_2,...,p_n0,...] 单元格中的p_1,是否意味着p_1和p_2连接在一起?
答案 0 :(得分:1)
是的,确实如此。仅为了用vtkPolyLine
测试您的情况,让我们创建一个带有单个vtkPolyData
的{{1}},该行的最后一点与第一个点相同。我们将看到生成的单元格数组具有相同的序列(即最后一点和第一个点相同)。
vtkPolyLine
文件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