我正在使用 Visual Studio 2010、VTK 5.6 并在不使用 CMake 的情况下配置我的项目。
我正在处理数值计算,并希望在运行时使用 VTK 生成多个图。从 VTK 网页中给出的线图示例开始,我设法生成了我想要的图。问题是代码在不关闭绘图窗口的情况下无法继续。
从我的“main.cpp”文件中,我将命令发送到一个头文件,在该头文件中启动 VTK 过程。
residualPlotter(x,xdim1d);
“residualPlotter”是生成绘图的函数。下面给出:
int residualPlotter(double* res, int size)
{
// Create a table with some points in it
vtkSmartPointer<vtkTable> table =
vtkSmartPointer<vtkTable>::New();
vtkSmartPointer<vtkFloatArray> arrX =
vtkSmartPointer<vtkFloatArray>::New();
arrX->SetName("X Axis");
table->AddColumn(arrX);
vtkSmartPointer<vtkFloatArray> arrF =
vtkSmartPointer<vtkFloatArray>::New();
arrF->SetName("Function");
table->AddColumn(arrF);
// Fill in the table with some example values
table->SetNumberOfRows(size);
for (int i = 0; i < size; ++i)
{
table->SetValue(i, 0, i);
table->SetValue(i, 1, res[i]);
}
// Set up the view
vtkSmartPointer<vtkContextView> view =
vtkSmartPointer<vtkContextView>::New();
view->GetRenderer()->SetBackground(1.0, 1.0, 1.0);
view->GetRenderWindow()->SetSize(800,600);
// Add multiple line plots, setting the colors etc
vtkSmartPointer<vtkChartXY> chart =
vtkSmartPointer<vtkChartXY>::New();
view->GetScene()->AddItem(chart);
vtkPlot *line = chart->AddPlot(vtkChart::LINE);
line->SetInput(table, 0, 1);
line->SetColor(0, 100, 0, 255);
line->SetWidth(1.75);
// Set up an interactor and start
vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
vtkSmartPointer<vtkRenderWindowInteractor>::New();
renderWindowInteractor->SetRenderWindow(view->GetRenderWindow());
renderWindowInteractor->Initialize();
renderWindowInteractor->Start();
return EXIT_SUCCESS;
}
所以,我希望代码继续运行而无需关闭窗口。我应该如何修改代码?
谢谢你们。