讲解都在注释中。

3d.pro文件

#-------------------------------------------------
#
# Project created by QtCreator 2018-03-12T18:11:08
#
#-------------------------------------------------QT       += core gui datavisualization widgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = 3d
TEMPLATE = app# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui
target.path = $$[QT_INSTALL_EXAMPLES]/datavisualization/$$TARGET
INSTALLS += target

main.cpp

#include "mainwindow.h"
#include <QApplication>
using namespace QtDataVisualization;
int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}

mainwindows.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QVBoxLayout>
#include "scatterdatamodifier.h"
#include <QtWidgets/QMessageBox>
using namespace QtDataVisualization;MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);//创建一个三维坐标系Q3DScatter *graph = new Q3DScatter();//设置相机的位置graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetBehindLow);//设置阴影显示graph->setShadowQuality(QAbstract3DGraph::ShadowQualityNone);//设置坐标轴的范围graph->axisX()->setRange(0, 480);graph->axisY()->setRange(0, 480);graph->axisZ()->setRange(0, 480);//设置坐标轴的数量graph->axisX()->setSegmentCount(int(480/20));graph->axisY()->setSegmentCount(int(480/20));graph->axisZ()->setSegmentCount(int(480/20));//设置整体坐标系的主题graph->activeTheme()->setType(Q3DTheme::ThemeQt);graph->axisX()->setLabelFormat("X");graph->axisY()->setLabelFormat("Y");graph->axisZ()->setLabelFormat("Z");//点QScatter3DSeries *series = new QScatter3DSeries;//点,大小series->setItemSize(0.05);//点,坐标QScatterDataArray data;//    data << QVector3D(0.5f, 0.5f, 0.5f);//创建一个widget,将坐标系添加进去QWidget *container = QWidget::createWindowContainer(graph);//判断是否graph(opengl)初始化if (!graph->hasContext()) {QMessageBox msgBox;msgBox.setText("Couldn't initialize the OpenGL context.");msgBox.exec();}//水平布局,父对象是wifgetQHBoxLayout *hLayout = new QHBoxLayout(ui->widget);//垂直布局QVBoxLayout *vLayout = new QVBoxLayout();//将container添加到水平布局中hLayout->addWidget(container, 1);hLayout->addLayout(vLayout);data.append(QVector3D(0.5f, 0.5f, 0.5f));data.append(QVector3D(10, 10, 10));series->dataProxy()->addItems(data);graph->addSeries(series);
}MainWindow::~MainWindow()
{delete ui;
}

QT的Q3DScatter使用(三维可视图)相关推荐

  1. 【Qt】2D绘图之图形视图框架(一)

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 场景(Scene) 04. 视图(View) 05. 图形项 06. 附录 01. 概述 在前面讲的基本绘图中,我们可以自 ...

  2. Matplotlib画图教程:在QT界面中嵌入三维图片

    Matplotlib画图教程:在QT界面中嵌入三维图片 需求: 做项目报告的时候,有这么一个想法,就是能通过UI随时调用matplotlib进行二维图和三维图的绘制.因此就诞生了做这么一个小模块的想法 ...

  3. QT的Q3DScatter类的使用

    详细说明 Q3DScatter类提供了用于渲染3D散点图的方法. 此类使开发人员可以在3D中渲染散点图,并通过自由旋转场景来查看散点图. 按住鼠标右键并移动鼠标即可完成旋转. 缩放是通过鼠标滚轮完成的 ...

  4. Qt笔记-Q3DScatter中元素的移动和旋转

    程序运行截图如下: 这里的主要框架为Q3DScatter 首先是设置范围,免得随机生成坐标时,坐标系不停的变: 使用QScatter3DSeries生成一串的item.方便显示在m_graph中 使用 ...

  5. Qt笔记-Q3DScatter及QCustom3DItem的基本使用

    这里加载了obj文件.程序运行截图如下: 感觉还不错,Qt自己封装了OpenGL,Qt开发者只需要依靠逻辑进行调用即可. 关键代码如下: using namespace QtDataVisualiza ...

  6. Qt文档阅读笔记-两视图共享模型实现冻结列效果(frozencolumn解析与实例)

    目录 官方解析 博主例子 官方解析 官方有个很好的例子: Frozen Column Example 但感觉有点冗余!在后面我将修改官方的例子,以及说明下这个效果的原理: Qt模型视图框架 使用两个视 ...

  7. qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵

    前三篇链接: 这一周笔者经历了漫长的洲际飞行和昏天黑地的倒时差,所以本篇内容相对少一些,侧重 Qt 而不是 OpenGL.在上一篇中,我们绘制了一个正四面体,然而正四面体的一个特点是无论你从哪个角度看 ...

  8. Qt 学习之路:模型-视图高级技术

      PathView PathView是 QtQuick 中最强大的视图,同时也是最复杂的.PathView允许创建一种更灵活的视图.在这种视图中,数据项并不是方方正正,而是可以沿着任意路径布局.沿着 ...

  9. PyQt(Python+Qt)学习随笔:QTreeView树形视图的indentation属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的indentation属性用于控制视图中每级数据项之间的缩进,对于顶级项 ...

  10. Qt三维图表模块 -- Data Visualization 学习记录

    Qt三维图表模块 ----- Data Visualization Qt数据可视化模块提供了一种将三维图形中的数据可视化为条形图.散点图和曲面图的方法.它对于可视化深度图和大量快速变化的数据特别有用, ...

最新文章

  1. 在Eclipse中的Android项目里实现代码“.NET研究”复用
  2. ADF:弹出窗口,对话框和输入组件
  3. php写抢票脚本,火车票抢票python代码公开揭秘!
  4. 上班划水神器:一个可以在控制台玩斗地主的项目!
  5. editplus显示FTP服务器连接,EditPlus3 FTP 设置对话框
  6. 微信小程序使用wxParse解析html代码
  7. 有关计算机专业工作室的名字,盘点最好听的工作室名字大全
  8. swfobject java_[Java教程]swfobject.js视频播放插件
  9. java ITEXT实现PDF生成二维码和条形码
  10. mplay readme
  11. 射频芯片ATE测试从入门到放弃之收发机
  12. 云计算360度:微软专家纵论产业变革
  13. android设备之间屏幕共享
  14. 好东西为什么卖不动,店铺选址开店必读!
  15. java操作linux命令
  16. VScode无法启动--- 感谢百度,感谢好人,感谢CCTV
  17. 模电笔记4 场效应管(单极型晶体管) 结型场效应管 绝缘栅型场效应管
  18. git权威指南总结五:git克隆
  19. ASP.NET Web Form学习
  20. BIOS设置选项启动

热门文章

  1. qq空间显示手机型号android,手机qq空间发说说怎么修改/隐藏显示的手机型号?
  2. 中国省市县地区代码数据库文件
  3. android 蓝牙读取数据格式,解析Android蓝牙数据包
  4. 领域的初学者--推荐的一本书
  5. 微信小程序图片宽高自适应
  6. 2021.7.28魔鬼训练报告
  7. B2C电商产品系统分析
  8. 整流管与稳压管的参数和选择原则
  9. opencv中对图片阀值的操作
  10. Spring整合JsonRpc