Windows Qt C++ VTK 绘制三维曲线
•
前端
Qt 自带数据可视化从文档上看,只能实现三维曲面。
QwtPlot3D在Qt6.6.0上没编译通过。
QCustomPlot 只能搞二维。
VTK~搞起。抄官网demo。
后续需求:
1、对数轴
2、Y轴逆序
3、Z轴值给色带,类似等高线图的色带
期待各位大佬多多指导。

vtkNew colors;
// Create the data.
vtkNew table;
vtkNew table1;
vtkNew arrX0;
arrX0->SetName("X");
table->AddColumn(arrX0);
vtkNew arrX1;
arrX1->SetName("Y");
table->AddColumn(arrX1);
vtkNew arrX2;
arrX2->SetName("Z");
table->AddColumn(arrX2);
vtkNew arrX3;
arrX3->SetName("-Z");
table->AddColumn(arrX3);
vtkNew arrX4;
arrX4->SetName("-Y");
table->AddColumn(arrX4);
const unsigned int numberOfTimePoints = 128;
table->SetNumberOfRows(numberOfTimePoints);
for (unsigned int ii = 0; ii SetValue(ii, 0, ii);
table->SetValue(ii, 1, ii);
table->SetValue(ii, 2, sin(value));
table->SetValue(ii, 3, sin(value) + 10);
table->SetValue(ii, 4, sin(value) + 20);
}
// Set up a 3D scene and add an XYZ chart to it.
vtkNew contextView;
contextView->GetRenderWindow()->SetSize(1024, 1024);
contextView->GetRenderWindow()->SetWindowName("PlotLine3D");
vtkNew chartXYZ;
chartXYZ->SetGeometry(vtkRectf(5.0, 5.0, 635.0, 475.0));
contextView->GetScene()->AddItem(chartXYZ);
// Add a line plot.
vtkNew plotLine3D;
plotLine3D->SetInputData(table, 0, 1, 2);
contextView->GetRenderWindow()->SetMultiSamples(0);
plotLine3D->GetPen()->SetWidth(1.0);
chartXYZ->AddPlot(plotLine3D);
// Add a line plot.
vtkNew plotLine3D1;
plotLine3D1->SetInputData(table, 0, 1, 3);
plotLine3D1->GetPen()->SetWidth(2.0);
chartXYZ->AddPlot(plotLine3D1);
// Add a line plot.
vtkNew plotLine3D2;
plotLine3D2->SetInputData(table, 0, 1, 4);
plotLine3D2->GetPen()->SetWidth(3.0);
chartXYZ->AddPlot(plotLine3D2);
chartXYZ->SetXAxisLabel("振幅");
chartXYZ->SetVisible(true);
// Finally render the scene.
contextView->GetRenderer()->SetBackground(colors->GetColor3d("DarkOliveGreen").GetData());
contextView->GetRenderWindow()->Render();
contextView->GetInteractor()->Initialize();
contextView->GetInteractor()->Start();
本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/2bc44037ae.html
