使用VTK绘制多条线集

3
有没有人能指导我如何绘制多条看起来连接的线?我找到了 vtkLine 及其 SetPoint1 和 SetPoint2 函数。然后我找到了 vtkPolyLine,但似乎没有添加、插入或设置函数。vtkPolyVertex 也是一样。
是否有基本函数可以让我将一些点推送到其内部数据的末尾,然后简单地渲染它?如果没有这样的函数/对象,那么该怎么做呢?
另外一个相关话题:我不太喜欢 vtk。是否有可视化工具包,可能功能有限,但更易于使用?
提前感谢。
1个回答

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

这个文档网站上有很多与所有类相关的示例,这里是vtkPoints的链接:http://www.vtk.org/doc/release/5.4/html/a01250.html。如果您点击vtkPoints (Tests)链接,可以看到与该类相关的测试。它提供了许多不同的示例代码。此外,vtk邮件列表可能比堆栈溢出更有用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接