QtDataVisualization 数据3D可视化

这篇具有很好参考价值的文章主要介绍了QtDataVisualization 数据3D可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        Data Visualization的三维显示功能主要由三种三维图形来实现,分别是三维柱状图Q3DBars,三维空间散点Q3DScatter,三维曲面Q3DSurface。这三个类的父类都是QAbstract3DGraph,从QWindow继承而来。

        Data Visualization与Qt Charts类似都是基于Qt Graphics View的图形视图结构,所以一个三维图形也是由图表、序列、坐标轴等元素构成。响应的序列类有:QBar3DSeries,QScatter3DSeries,QSurface3DSeries类。这三个序列类是与图形类Q3DBars,Q3DScatter,Q3DSurface一一对应的。在一个图中可以有多个同类型的序列,但不能有不同类型的序列。另外,三维图形也有坐标轴类,共有两种坐标轴类:QValue3DAxis和QCategory3DAxis,前者用于数值型坐标轴,后者用于文字型坐标轴。

        Data Visualization模块中还有数据代理(Data Proxies),数据代理类就是与序列对应,用于存储序列的数据的类。这也涉及一些具体的功能类:QBarDataProxy,QScatterDataProxy和QSurfaceDataProxy,这也与三种图表一一对应。

        

 本文作者原创,转载请附上文章出处与本文链接。

QtDataVisualization 数据3D可视化目录

1 .h 源代码

2 三维散点图

3 三维柱状图

4  三维曲面


        说明: 本文章使用QT6 开发  和  QT5 略有区别,QT5 版本 和 QT6 版本在文章末尾都会附上链接供5参考和下载。

        图标可以滚轮缩放、360旋转、阴影效果。

1 .h 源代码

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSplitter>
#include <QColorDialog>
#include <QVBoxLayout>
#include <QMouseEvent>
#include <QtDataVisualization>
#include <QLineEdit>
#include <QComboBox>
#include <QSlider>
#include <QSpinBox>
#include <Q3DBars>
#include <QAbstract3DGraph>




QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

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

    void InitGraph3D();


private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow *ui;

    Q3DBars *graph3D=nullptr;  //三维图表

    QBar3DSeries *series=nullptr; //序列

    QHeightMapSurfaceDataProxy *proxy=nullptr; //数据代理

    Q3DSurface *graph3DSurface=nullptr;

    QSurface3DSeries *seriesSurface=nullptr;

    QWidget *centerWgt=nullptr;

    bool m_bClick=false;
    QPoint m_Point;

    int m_Zoom=100;

};
#endif // MAINWINDOW_H

2 三维散点图

    //创建Q3DScatter三维散点图类对象
    Q3DScatter *scatter;
    scatter=new Q3DScatter();
    centerWgt=QWidget::createWindowContainer(scatter);
    scatter->setFlags(scatter->flags() ^ Qt::FramelessWindowHint);
    //新建序列和数据,在序列中加入3个点,把序列添加到图形
    QScatter3DSeries *series = new QScatter3DSeries;
    QScatterDataArray data;
    data << QVector3D(0.5f, 0.5f, 0.5f) << QVector3D(-0.3f, -0.5f, -0.4f) << QVector3D(0.0f, -0.3f, 0.2f);
    series->dataProxy()->addItems(data);
    scatter->addSeries(series);

qtdatavisualization,QT控件使用详解,3d

3 三维柱状图

    //构造一个三维柱状图对象
    Q3DBars *bars;
    bars=new Q3DBars();
    centerWgt=QWidget::createWindowContainer(bars);
    bars->setFlags(bars->flags() ^ Qt::FramelessWindowHint);	//top level
    //设置坐标轴的显示范围
    bars->rowAxis()->setRange(0, 4);
    bars->columnAxis()->setRange(0, 4);
    //创建5行数据,放入序列,添加到图形
    QBar3DSeries *series = new QBar3DSeries;
    QBarDataRow *data = new QBarDataRow;
    *data << 1.0f << 3.0f << 7.5f << 5.0f << 2.2f;
    series->dataProxy()->addRow(data);
    bars->addSeries(series);

qtdatavisualization,QT控件使用详解,3d

qtdatavisualization,QT控件使用详解,3d

4  三维曲面

    //创建一个三维曲面对象
    Q3DSurface *surface;
    surface=new Q3DSurface();
    centerWgt=QWidget::createWindowContainer(surface);
    surface->setFlags(surface->flags() ^ Qt::FramelessWindowHint);
    //创建数据对象
    QSurfaceDataArray *data = new QSurfaceDataArray;
    QSurfaceDataRow *dataRow1 = new QSurfaceDataRow;
    QSurfaceDataRow *dataRow2 = new QSurfaceDataRow;
    //为数据对象赋值
    *dataRow1 << QVector3D(0.0f, 0.1f, 0.5f) << QVector3D(1.0f, 0.5f, 0.5f);
    *dataRow2 << QVector3D(0.0f, 1.8f, 1.0f) << QVector3D(1.0f, 1.2f, 1.0f);
    *data << dataRow1 << dataRow2;
    //创建序列,加入数据,添加到Q3DSurface
    QSurface3DSeries *series = new QSurface3DSeries;
    series->dataProxy()->resetArray(data);
    surface->addSeries(series);

qtdatavisualization,QT控件使用详解,3d

 qtdatavisualization,QT控件使用详解,3d

资源链接:QtDataVisualization三维控件-C++文档类资源-CSDN下载

密码: https://blog.csdn.net/qq_37529913?type=blog

 其它文章 :

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualization文章来源地址https://www.toymoban.com/news/detail-628822.html

到了这里,关于QtDataVisualization 数据3D可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MATLAB中3D点云数据的处理与可视化

    3D点云数据是表示3D形状的一种数据结构,它通常是通过激光扫描、立体摄影或其他3D扫描技术获得的。处理和可视化这些数据在很多领域中都非常有用,比如计算机视觉、机器人技术、地理信息系统等。MATLAB提供了一系列的工具,可以帮助我们方便地进行3D点云数据的处理与

    2024年02月03日
    浏览(54)
  • 竞赛项目 疫情数据分析与3D可视化 - python 大数据

    🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据全国疫情数据分析与3D可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:2分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/danch

    2024年02月13日
    浏览(40)
  • 水电站运行数据3D可视化展示方便管理运维

    水电站是现代能源体系中的重要组成部分,对于保障国家能源安全和经济发展具有重要的意义。然而,由于水电站的建设和管理涉及到大量的技术和专业知识,许多人对水电站的运行和维护存在许多疑惑和困惑。为了解决这些问题,我们引入了全新的水电站三维可视化展示系

    2024年02月12日
    浏览(45)
  • NTU RGB-D 60 骨架数据集3D可视化

    本文是对动作识别、动作预测常见数据集NTU RGB-D 60的3D可视化,运行中可以用鼠标拖动可以查看不同视角,可以保存成GIF图,可以将Gif解析成单帧PNG图片进行进一步处理,可以将所有帧图片凭借成一个整体,实现论文中的美观度。 当然,这个代码适用于所有的骨架数据集,只

    2024年02月16日
    浏览(46)
  • Three.js学习项目--3D抗美援朝数据可视化

    部分场景 体验地址 https://kmyc.hongbin.xyz/ 操作说明 视频 操作说明 我做了哪些(功能) draco解析glb模型 同时处理部分纹理请求 减轻一次加载纹理压力 手动控制轨道控制器镜头动画 多音频拼接 控制 封装动画播放器 控制进度切换 动画进度控制器 同步音频 模拟视频体验 useCon

    2024年02月11日
    浏览(81)
  • DataGear 制作基于 three.js 的 3D 数据可视化看板

    DataGear 支持采用原生的HTML、JavaScript、CSS制作数据可视化看板,也支持导入由 npm 、 vite 等前端工具构建的前端程序包。得益于这一特性,可以很容易制作基于three.js的3D数据可视化看板。 首先,参考three.js的官方教程 https://threejs.org/docs/index.html#manual/en/introduction/Installation 编写

    2024年03月09日
    浏览(72)
  • 计算机设计大赛 疫情数据分析与3D可视化 - python 大数据

    🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据全国疫情数据分析与3D可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:2分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https://gitee.com/danch

    2024年03月22日
    浏览(52)
  • 【Python】Vscode使用pyecharts 3D散点图实现数据可视化

    目录 前言: 一:3D散点图效果图展示: 二.pyecharts是什么? 三.什么是3D散点图 四.环境准备 1.Vscaode下载扩展包: 2.安装pyechart库 五.3D散点图代码实现 1.导库和导包 2.导入数据(使用的是航空公司数据)  3.剔除年龄缺失值: 4.数据筛选 5.添加参数 6.实现效果图  7.修改参数实

    2024年02月07日
    浏览(55)
  • 9.8.0.32:ProEssentials数据可视化2D和3D图表:Crack

    下面是我们的Winforms、Wpf、C++ MFC、VCL、ActiveX图表组件示例项目中的屏幕捕获。 有关下图,请参见我们的示例项目和演示中的030。 ProEssentials Winforms 图表, WPF 图表, C++/MFC/VCL 图表. Gigasoft拥有20多年帮助企业开发大型客户端和嵌入式图表项目的经验。图表快速、稳定、强健且简单

    2024年02月11日
    浏览(52)
  • 数字工厂时代,如何实现3D数据访问与发布、WEB大模型可视化?

    Tech Soft 3D的HOOPS 3D CAD SDK为现代工厂工作流程奠定了基础,通过最快、最准确的CAD数据访问和动态3D可视化支持数字孪生、机器人仿真、设计、流程和规划、IIoT和操作辅助应用程序。 本文将和您详细探讨。如何利用HOOPS技术来增强您的应用程序。  HOOPS_HOOPS试用_3D软件开发工具

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包