今天接着更新代码,搞一个小柱体。
文章目录
1 官方示例展示
2 代码搬运
2.1 cylinder.h
2.2 cylinder.cpp
3 运行效果
★ 源码 ★
1 官方示例展示
今天又来搬运代码了,这里我们暂时跳过了一个例子,那个例子有点复杂,这里先跳过吧,先找软柿子捏。
2 代码搬运
2.1 cylinder.h
#ifndef CYLINDER_H #define CYLINDER_H #include <QWidget> #include "QVTKOpenGLWidget.h" //新版本,旧版QVTKWidget #include "vtkAutoInit.h" #include "vtkCylinderSource.h" #include "vtkPolyDataMapper.h" #include "vtkRenderer.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkProperty.h" #include "vtkCamera.h" #include "vtkActor.h" namespace Ui { class Cylinder; } class Cylinder : public QWidget { Q_OBJECT public: explicit Cylinder(QWidget *parent = 0); ~Cylinder(); private: Ui::Cylinder *ui; vtkCylinderSource *cylinder = nullptr; vtkPolyDataMapper *mapper = nullptr; vtkActor *actor = nullptr; vtkRenderer *render = nullptr; }; #endif // CYLINDER_H
2.2 cylinder.cpp
#include "cylinder.h" #include "ui_cylinder.h" Cylinder::Cylinder(QWidget *parent) : QWidget(parent), ui(new Ui::Cylinder) { ui->setupUi(this); cylinder = vtkCylinderSource::New(); cylinder->SetResolution(80); cylinder->SetHeight(10); mapper = vtkPolyDataMapper::New(); mapper->SetInputConnection(cylinder->GetOutputPort()); actor = vtkActor::New(); actor->SetMapper(mapper); actor->GetProperty()->SetColor(1.0,0.23,0.45); actor->RotateX(30.0); actor->RotateY(-45.0); render = vtkRenderer::New(); render->AddActor(actor); ui->widget->GetRenderWindow()->AddRenderer(render); } Cylinder::~Cylinder() { delete ui; }