绘制使用VTK设置的多行

DaC*_*own 3 c++ vtk

有人能指出我如何绘制似乎连接的多条线的正确方向吗?我发现vtkLineSetPoint1SetPoint2功能.然后我找到了vtkPolyLine,但似乎没有任何添加,插入或设置功能.同样的vtkPolyVertex.

是否有一个基本功能允许我只是在其内部数据的末尾推送一些点并简单地渲染它?或者,如果没有这样的功能/对象,那么该怎么办?

在一个相关的主题:我不太喜欢vtk.是否有可视化工具包,可能功能有限,更容易使用?

提前致谢

Wil*_*ill 6

要绘制多行,首先应创建一个包含所有点的vtkPoints类,然后通过vtkPolyData或vtkUnstructuredGrid(这是您的vtkDataSet类; vtkDataSet类包含vtkPoints)为要连接到行的点添加连接信息以及这些点的连接信息).一旦构造了vtkDataSet,就可以采用正常的路径来渲染它(mapper-> actor-> renderer ...)

例如:

vtkPoints *pts = vtkPoints::New();
pts->InsertNextPoint(1,1,1);
...
pts->InsertNextPoint(5,5,5);

vtkPolyData *polydata = vtkPolyData::New();
polydata->Allocate();
vtkIdType connectivity[2];
connectivity[0] = 0;
connectivity[1] = 3;
polydata->InsertNextCell(VTK_LINE,2,connectivity); //Connects the first and fourth point we inserted into a line

vtkPolyDataMapper *mapper = vtkPolyDataMapper::New();
mapper->SetInput(polydata);

// And so on, need actor and renderer now
Run Code Online (Sandbox Code Playgroud)

文档网站上有很多关于所有类的例子这里是vtkPoints:http://www.vtk.org/doc/release/5.4/html/a01250.html

如果单击vtkPoints(Tests)链接,则可以看到与该类关联的测试.它提供了一堆不同的示例代码.

此外,vtk邮件列表可能比堆栈溢出更有用.