这就是我目前的情况:
vtkSmartPointer<vtkPolyData> polydata = vtkSmartPointer<vtkPolyData>::New();
polydata->SetPoints(path);
polydata->Modified();
vtkSmartPointer<vtkDijkstraGraphGeodesicPath> dijkstra =
vtkSmartPointer<vtkDijkstraGraphGeodesicPath>::New();
dijkstra->SetInputData(polydata);
dijkstra->SetStartVertex(0);
dijkstra->SetEndVertex(1);
dijkstra->Update();
但是,每次执行Update()
时,它都会返回vector subscript out of range
。我该如何解决这个问题?
答案 0 :(得分:0)
来自vtkDijkstraGraphGeodesicPath文档:
将多边形网格作为输入...
...
警告输入的polydata必须只有三角形单元格。
我的猜测是你的多边形数据不符合必要的前提条件,不是一个合适的三角形网格,只是一个点集。
至少需要调用vtkPolyData::SetLines()
来指定顶点之间的连接。