vtk/Qt中的控制图外观
Control plot appearance in vtk / Qt
我在QVTKWidget中显示一个vtk曲面图。QVTKWidget支持交互,即我可以缩放或旋转。我想在任何用户交互之前控制绘图的初始外观:缩放因子、视角、曲面颜色映射。为此,我必须操作哪些对象?我正在查看vtkChartXYZ、vtkContextScene、vtkCamera、vtkRenderer的接口,但还没有找到设置上述参数的好方法。最好的方法是什么?
QVTKWidget vtkWidget;
vtkSmartPointer<vtkContextView> view = vtkSmartPointer<vtkContextView>::New();
vtkSmartPointer<vtkChartXYZ> chart = vtkSmartPointer<vtkChartXYZ>::New();
vtkSmartPointer<vtkTable> surface = vtkSmartPointer<vtkTable>::New();
// ... fill surface with some data ...
view->SetRenderWindow(vtkWidget.GetRenderWindow());
chart->SetGeometry(vtkRectf(0.0, 0.0, 300, 300));
view->GetScene()->AddItem(chart.GetPointer());
vtkSmartPointer<vtkPlotSurface> plot = vtkSmartPointer<vtkPlotSurface>::New();
// ... set up plot ...
plot->SetInputData(surface.GetPointer());
chart->AddPlot(plot.GetPointer());
view->GetRenderWindow()->SetMultiSamples(0);
view->GetRenderWindow()->Render();
关于缩放,我遇到了同样的问题,我通过导出vtkInteractorStyleImage
类来解决,该类用于与QVTKWidget中的图像交互。
基本上,该类允许使用鼠标滚轮进行缩放,事实上,它有(以及其他)方法OnMouseWheelForward()
和OnMouseWheelBackward()
;但它们是CCD_ 4。在派生该类时,我将这些方法(OnMouseWheelForward()
和OnMouseWheelBackward()
)重新定义为public
。让我们用"myInteractorStyle
"来指示派生类的实例。
这样,一旦图像在QVTKWidget中渲染(并且myInteractorStyle
已分配给交互程序),我就做了这样的事情(假设你想增加缩放):
for (int i = 0; i < zoomLevel; ++i){
myInteractorStyle->OnMouseWheelForward();
//Or OnMouseWheelBackward(), if you want to reduce the zoom
}
因此,从交互开始,您的缩放级别就满足了。我认为,以同样的方式,你也可以解决你的其他问题。
相关文章:
- 控制允许动态运行c++的并发操作数
- 从控制台中删除最后打印的元素
- 是否可以使用if constexpr删除控制流语句
- 无法在windows控制台中为C++程序提供必要的输入
- 控制到达非空函数clang(-Wreturn-type)的末尾
- 查找 GCD:并非所有控制路径都返回值
- 通过 API 控制 DJI 相机
- 禁止在控制台上记录谷神星
- 是否可以使用一个类来控制 C++ 中另一个类的对象?(阿杜伊诺)
- 如何删除列出的"QGraphicsPathItem"对象以控制进程内存使用情况?
- 我在 C++ 代码中遇到错误警告:控制到达非空函数 [-Wreturn 类型] 的末尾
- C++ Python 模块在 Blender 中崩溃,但在 Python 控制台中不会崩溃
- wx通用目录控制错误"wxTheFileIconsTable was nullptr"
- main() 中的 std::cout 在调试期间不会在调试控制台中打印任何内容
- Cython通过浮点数的最快方式,用于高频控制回路
- 用户控制从 c++ 到 java 脚本的 Webassembly 访问调用
- C ++,如何从控制台中输入的字符串中删除字母?
- 如何从单独的线程控制 SFML 窗口?
- 如何防止 Windows 控制台上的回车键自动滚动
- vtk/Qt中的控制图外观