【VTK】读取一个 STL 文件,并使用 Qt 显示出来,在 Windows 上使用 Visual Studio 配合 Qt 构建 VTK

知识不是单独的,一定是成体系的。更多我的个人总结和相关经验可查阅这个专栏:Visual Studio。

文章目录

直接先把效果放出来,有需要就往下看。

A.h

cpp 复制代码
// A.h
#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_A.h"

#include <vtkSTLReader.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkSmartPointer.h>
#include <vtkGenericOpenGLRenderWindow.h>

class A : public QMainWindow
{
    Q_OBJECT

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

private:
    Ui::AClass ui;

    void initVTK();
};

A.cpp

cpp 复制代码
// A.cpp
#include "A.h"

A::A(QWidget* parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);

    // 配置 VTK 的初始设置
    initVTK();
}

A::~A()
{
}

void A::initVTK()
{
    // 读取 STL 文件
    vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
    reader->SetFileName("skull_50.stl"); // 请替换为你的 STL 文件路径
    reader->Update();

    // 创建映射器和演员
    vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    mapper->SetInputConnection(reader->GetOutputPort());

    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(mapper);

    // 创建渲染器
    vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
    // 添加演员到渲染器
    renderer->AddActor(actor);

    // 创建渲染窗口和渲染窗口交互器
    vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow = vtkSmartPointer<vtkGenericOpenGLRenderWindow>::New();
    renderWindow->AddRenderer(renderer);

    // 添加到 qvtkWidget 控件中显示
    ui.qvtkWidget->setRenderWindow(renderWindow);

    // 开始渲染
    renderWindow->Render();
}

Ref.

  1. 骷髅3D打印3D模型
相关推荐
别动我齐刘海3 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
长沙红胖子Qt5 小时前
Qt+TiePieHS3开发笔记(二):HS3发送器发出内置波形、直连示波器,示波器检测内置波形Demo
qt·示波器·tiepiehs3·发生器·同步发射和示波器采集
jack186895 小时前
Devin 智能软件工程师实战应用指南
windows
jimy18 小时前
C++ 虚函数表:基类和派生类共用一张 vtable 吗?
开发语言·c++
爱吃提升8 小时前
Dev-C++ 5.11 C++断点调试完整教程
开发语言·c++
陈年老古董8 小时前
PyQt5 入门指南:环境搭建、PyCharm 外部工具配置与登录界面实战
开发语言·qt·pycharm
Hello_Pyhx8 小时前
WinDirStat 2.9.3:从目录扫描到可复查的占用报表
windows·mac·垃圾清理
zhanghaha13148 小时前
Qt 类完整例程【逐词拆解 + 逐步骤执行保姆教程】
开发语言·qt
xlq223228 小时前
全面复习7
c++
geats人山人海9 小时前
现代c++2.4 虚继承
java·开发语言·c++