Нарисуйте несколько линий, установленных с помощью VTK - PullRequest
3 голосов
/ 26 января 2010

Может кто-нибудь указать мне правильное направление, как нарисовать несколько линий, которые кажутся связанными? Я нашел vtkLine и его SetPoint1 и SetPoint2 функции. Затем я нашел vtkPolyLine, но, похоже, для этого нет функции добавления, вставки или установки. То же самое для vtkPolyVertex.

Есть ли базовая функция, которая позволяет мне просто нажать какую-то точку в конце своих внутренних данных и просто отрендерить ее? Или, если такой функции / объекта нет, каков путь сюда?

По смежной теме: я не очень люблю vtk. Существует ли инструментарий визуализации, возможно, с ограниченной функциональностью, который проще в использовании?

Заранее спасибо

1 Ответ

6 голосов
/ 26 января 2010

Для рисования нескольких линий вы должны сначала создать класс vtkPoints, который содержит все точки, а затем добавить информацию о соединении для точек, которые вы хотите соединить в линии, через vtkPolyData или vtkUnstructuredGrid (который является вашим классом 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, вероятно, будет гораздо более полезным, чем переполнение стека.

...