QVTK 可视化

发布时间:2023年12月17日
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

#include <vtkNew.h>                     // 智能指针
#include <QVTKOpenGLNativeWidget.h>
#include <vtkCylinderSource.h>          // 圆柱

#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkProperty.h>
#include <vtkCamera.h>
#include <vtkGenericOpenGLRenderWindow.h>

#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);




QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    vtkNew<vtkCylinderSource> cylinder;     // 圆柱
    vtkNew<vtkPolyDataMapper> mapper;
    vtkNew<vtkActor> actor;
    vtkNew<vtkRenderer> renderer;
    vtkNew<vtkGenericOpenGLRenderWindow> renWin;



private:
    Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H

#include “mainwindow.h”
#include “./ui_mainwindow.h”

MainWindow::MainWindow(QWidget *parent)
QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->openGLWidget->setStyleSheet(“background:transparent;border:3px solid black;”);
cylinder->SetResolution(10);


mapper->SetInputConnection(cylinder->GetOutputPort());

actor->SetMapper(mapper);
actor->GetProperty()->SetColor(0.0000, 0.3883, 0.2784);
actor->RotateX(30.0);
actor->RotateY(-45.0);

renderer->AddActor(actor);
renderer->ResetCamera();
renderer->GetActiveCamera()->Zoom(1.5);
renderer->SetBackground(0.1, 0.3, 0.7);
renWin->AddRenderer(renderer);
renWin->SetSize(640, 640);


ui->openGLWidget->setRenderWindow(renWin);

}

MainWindow::~MainWindow()
{
delete ui;
}

`
``在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_43862398/article/details/134970179
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。