VTK: базовая визуализация высоты - PullRequest
0 голосов
/ 12 марта 2012

У меня есть базовая привет-программа libvtk, которая работает следующим образом:

#include "vtkGraphLayoutView.h"
#include "vtkRandomGraphSource.h"
#include "vtkRenderWindow.h"
#include "vtkRenderWindowInteractor.h"

int main(int, char*[])
{
  vtkRandomGraphSource* source = vtkRandomGraphSource::New();

  vtkGraphLayoutView* view = vtkGraphLayoutView::New();
  view->SetRepresentationFromInputConnection(source->GetOutputPort());

  view->ResetCamera();
  view->Render();
  view->GetInteractor()->Start();

  source->Delete();
  view->Delete();

  return 0;
}

скомпилировать с:

$ g++ -I/usr/include/vtk-5.6 hello_vtk.cpp -lvtkInfovis -lvtkViews -lvtkFiltering

выполнить с:

$ ./a.out

У меня есть два набора данных, которые я хочу визуализировать, оба в виде полей высоты:

Первый имеет вид:

double x1[N*M];

представляет поле высоты N x M, где высота в (i, j) равна x [N * j + i]

Второй имеет вид:

map<pair<double, double>, double> x2;

, где имеется образец сплошной поверхности от (i, j) высоты h, представленной:

x2[make_pair(i,j)] = h

Очевидно, что при необходимости экземпляр x2 можно интерполировать в x1.

У меня вопрос, какие классы следует использовать и какой эскиз реализации необходим для визуализации x1 и / или x2 в VTK?

(Есть ли какая-нибудь документация VTK сверху вниз? Она кажется очень большой библиотекой, и единственная ссылка, которую я могу найти, - это доксиген, который требует линейного поиска по времени, чтобы найти то, что вы ищете)

1 Ответ

1 голос
/ 21 июля 2012

Вы должны поместить свои данные в структуру данных VTK (вероятно, vtkImageData или vtkStructuredGrid). Вы можете проверить этот пример: http://www.vtk.org/Wiki/VTK/Examples/Cxx/Meshes/Color_a_mesh_by_height, в котором должно быть много элементов, необходимых для этого.

Примечание: в примере используется структура данных vtkPolyData, но это, вероятно, излишне для этого типа обычных данных / данных сетки.

...