绘制使用VTK设置的多行

时间:2010-01-26 16:28:06

标签: c++ vtk

有人能指出我如何绘制似乎连接的多条线的正确方向吗?我找到了vtkLine及其SetPoint1SetPoint2函数。然后我找到vtkPolyLine,但似乎没有任何添加,插入或设置功能。与vtkPolyVertex相同。

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

关于相关话题:我不太喜欢vtk。是否有可视化工具包,可能功能有限,更容易使用?

提前致谢

1 个答案:

答案 0 :(得分:6)

要绘制多行,首先应创建一个包含所有点的vtkPoints类,然后通过vtkPolyData或vtkUnstructuredGrid(这是您的vtkDataSet类; vtkDataSet)为要连接到行的点添加连接信息class包含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(测试)链接,则可以看到与该类关联的测试。它提供了许多不同的示例代码。

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