QT数据可视化框架编程实战之三维曲面图QML组件 使用高度图生成三维曲面图 补天云QT技术培训专家
QT数据可视化框架编程实战之三维曲面图 使用高度图生成三维曲面图 补天云QT技术培训专家
简介
本文将介绍如何使用QT数据可视化框架中的QT三维曲面图QML组件,通过一幅高度图的图片来生成三维曲面图。QT数据可视化框架提供了三维曲面图这种可视化类型。使用QT三维曲面图类型时,可以通过加载一幅高度图的图片作为数据源,自动生成对应的三维曲面图。
文章目录
正文
QT三维曲面图组件的数据类型
QT三维曲面图组件C++类型Q3DSurface
This class enables developers to render 3D surface plots and to view them by rotating the scene freely. The visual properties of the surface such as draw mode and shading can be controlled via QSurface3DSeries.
QT三维曲面图序列类型QSurface3DSeries
QSurface3DSeries序列类型和Q3DSurface曲面图类型搭配使用。这个类型使用的数据代理类是QSurfaceDataProxy类型。
SurfaceDataProxy。这个代理类型有两个派生类型:
QItemModelSurfaceDataProxy (QT条目模型曲面数据代理,即是QT模型视图代理中的模型数据作为数据源)
QHeightMapSurfaceDataProxy (QT高度图曲面数据代理,即是使用高度图图片作为数据源)
具有以下几种具体标记:
QSurface3DSeries::DrawWireframe (画线框)
Only the grid is drawn.
QSurface3DSeries::DrawSurface (画曲面)
Only the surface is drawn.
QSurface3DSeries::DrawSurfaceAndWireframe (画线框和曲面)
DrawWireframe | DrawSurface
Both the surface and grid are drawn.
QT三维曲面图组件QML类型Surface3D
这个QML类型使得我们可以在QML应用程序中使用QT三维曲面图组件。
QT三维曲面序列类型Surface3DSeries
Surface3DSeries这个QML类型用于在QML应用中表示曲面序列。与之对应的数据代理类型是SurfaceDataProxy。这个代理类型有两个派生类型:
ItemModelSurfaceDataProxy (QT条目模型曲面数据代理,即是QT模型视图代理中的模型数据作为数据源)
HeightMapSurfaceDataProxy (QT高度图曲面数据代理,即是使用高度图图片作为数据源)
QT三维曲面图应用实例运行效果
实例所使用的高度图图片:

实例运行效果如下所示:

点击三维图面图之后的效果:

运行效果视频演示
本文描述的应用程序运行效果视频演示如下所示:
P86 QT数据可视化框架 QT使用高度图生成三维曲面图 补天云QT技术培训专家
本文对应的演示视频链接如下所示:
QT数据可视化框架 QT使用高度图生成三维曲面图 补天云QT技术培训专家
QT三维曲面图应用实例源码
QT三维曲面图应用实例源码如下所示:
//主窗口
Window {
id: root
width: 1900
height: 1000
visible: true
title: qsTr("补天云QT系列视频课程 QT数据可视化 QT高度图生成三维曲面")
//渐变色
ColorGradient {
id: surfaceGradient
ColorGradientStop { position: 0.0; color: "darkgreen"}
ColorGradientStop { position: 0.15; color: "darkslategray" }
ColorGradientStop { position: 0.7; color: "peru" }
ColorGradientStop { position: 1.0; color: "white" }
}
//三维曲面
Surface3D {
id: surfacePlot
width: root.width
height: root.height
aspectRatio: 3.0
theme: Theme3D {
type: Theme3D.ThemeStoneMoss
font.pointSize: 36
colorStyle: Theme3D.ColorStyleRangeGradient
baseGradients: [surfaceGradient]
}
shadowQuality: AbstractGraph3D.ShadowQualityMedium
selectionMode: AbstractGraph3D.SelectionSlice | AbstractGraph3D.SelectionItemAndRow
scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft
axisX.segmentCount: 3
axisX.subSegmentCount: 3
axisX.labelFormat: "%i"
axisZ.segmentCount: 3
axisZ.subSegmentCount: 3
axisZ.labelFormat: "%i"
axisY.segmentCount: 2
axisY.subSegmentCount: 2
axisY.labelFormat: "%i"
axisY.title: "高度 (m)"
axisX.title: "经度 175.x\"E"
axisZ.title: "维度 -39.x\"N"
axisY.titleVisible: true
axisX.titleVisible: true
axisZ.titleVisible: true
//三维曲面序列
Surface3DSeries {
id: heightSeries
flatShadingEnabled: false
drawMode: Surface3DSeries.DrawSurface
HeightMapSurfaceDataProxy {
//三维曲面使用的高度图
heightMapFile: "://ButianyunHeightMap/heightmap.png"
autoScaleY: true
minYValue: 740
maxYValue: 2787
minZValue: -374 // ~ -39.374411"N
maxZValue: -116 // ~ -39.115971"N
minXValue: 472 // ~ 175.471767"E
maxXValue: 781 // ~ 175.780758"E
}
}
}
Text {
anchors.centerIn: parent
font.bold: true
font.pixelSize: 72
color: "red"
text: "QT数据可视化组件\nQT高度图生成三维曲面\n补天云QT技术培训专家"
horizontalAlignment: Qt.AlignHCenter
}
}
总结
本文介绍了如何使用QT数据可视化框架中的QT三维曲面图QML组件,通过一幅高度图的图片来生成三维曲面图。本文还展示了QML程序生成的三维曲面图,以及对应的QML源码。
如果您认为这篇文章对您有所帮助,请您一定立即点赞+喜欢+收藏,本文作者将能从您的点赞+喜欢+收藏中获取到创作新的好文章的动力。如果您认为作者写的文章还有一些参考价值,您也可以关注这篇文章的作者。
QT数据可视化框架编程实战之三维曲面图QML组件 使用高度图生成三维曲面图 补天云QT技术培训专家的更多相关文章
- D3js初探及数据可视化案例设计实战
摘要:本文以本人目前所做项目为基础,从设计的角度探讨数据可视化的设计的方法.过程和结果,起抛砖引玉之效.在技术方案上,我们采用通用web架构和d3js作为主要技术手段:考虑到项目需求,这里所做的可视化 ...
- 大数据学习day20-----spark03-----RDD编程实战案例(1 计算订单分类成交金额,2 将订单信息关联分类信息,并将这些数据存入Hbase中,3 使用Spark读取日志文件,根据Ip地址,查询地址对应的位置信息
1 RDD编程实战案例一 数据样例 字段说明: 其中cid中1代表手机,2代表家具,3代表服装 1.1 计算订单分类成交金额 需求:在给定的订单数据,根据订单的分类ID进行聚合,然后管理订单分类名称, ...
- Qt数据可视化(散点图、折线图、柱状图、盒须图、饼状图、雷达图)开发实例
目录 散点图 折线图 柱状图 水平柱状图 水平堆叠图 水平百分比柱状图 盒须图 饼状图 雷达图 Qt散点图.折线图.柱状图.盒须图.饼状图.雷达图开发实例. 在开发过程中我们会使用多各种各样的图 ...
- 数据可视化之powerBI入门(二)体验PowerBI:零基础分分钟生成一份交互报表
https://zhuanlan.zhihu.com/p/64144595 体验PowerBI:零基础分分钟生成一份交互报表 首先我们准备一份数据,Excel格式 数据是从2006年到2015年10年 ...
- Linux 上的数据可视化工具
Linux 上的数据可视化工具 5 种开放源码图形化工具简介 Linux® 上用来实现数据的图形可视化的应用程序有很多,从简单的 2-D 绘图到 3-D 制图,再到科学图形编程和图形模拟.幸运的是,这 ...
- 前端数据可视化echarts.js使用指南
一.开篇 首先这里要感谢一下我的公司,因为公司需求上面的新颖(奇葩)的需求,让我有幸可以学习到一些好玩有趣的前端技术,前端技术中好玩而且比较实用的我想应该要数前端的数据可视化这一方面,目前市面上的数据 ...
- 使用bokeh-scala进行数据可视化
目录 前言 bokeh简介及胡扯 bokeh-scala基本代码 我的封装 总结 一.前言 最近在使用spark集群以及geotrellis框架(相关文章见http://www.cnbl ...
- Echarts数据可视化全解注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
- 前端数据可视化echarts.js
一.echarts.js的优势与总体情况 echarts.js作为国内的IT三巨头之一的百度的推出一款相对较为成功的开源项目,总体上来说有这样的一些优点 1.容易使用 echarts.js的官方文档比 ...
- Echarts数据可视化series-scatter散点图,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) Echarts数据可视化开发代码注释全解 Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入): title详解. tooltip详解.toolb ...
随机推荐
- 题解:AT_abc352_d [ABC352D] Permutation Subsequence
虽然比赛没打,但是想来水估值发表思路. 题意 给你一个 \(1\sim n\) 的排列,让你从中找一段长为 \(k\) 的子序列,使得这个子序列中的元素排序后数值连续. 分析 题意转换一下,先用结构体 ...
- vue项目坑记录:vue项目运行卡在百分之几几几
今天晚上打着游戏,同事突然叫我拉项目下来运行,我打完就去拉代码了,结果vue项目运行卡在66%不动了,我也是百度一下分享别人怎么解决的文章给他,继续我的游戏! 结果呢? 游戏结束后,我拉代码,还是这个 ...
- 解密prompt系列34. RLHF之训练另辟蹊径:循序渐进 & 青出于蓝
前几章我们讨论了RLHF的样本构建优化和训练策略优化,这一章我们讨论两种不同的RL训练方案,分别是基于过程训练,和使用弱Teacher来监督强Student 循序渐进:PRM & ORM So ...
- 简单认识APP项目
manifests:里面只有一个xml,是app运行配置文件 清单文件 <?xml version="1.0" encoding="utf-8"?> ...
- python raise异常处理
python raise异常处理 一般最简单的异常处理是try except: try: f = open('test.txt') except Exception as e: print(e) f ...
- 学术写作: These authors contributed equally to this work. —— 共同一作
早些年很少看到论文里面有: These authors contributed equally to this work. 不过现在这种方法在论文中出现的还是比较多的,说白了,这种共同一作的声明其实是 ...
- Jax框架支持的python和numpy版本
官方: https://jax.readthedocs.io/en/latest/deprecation.html 每个推出的JAX版本都会支持45个月内推出的python,对此具体解释一下: 比如J ...
- JavaScript中的包装类型详解
JavaScript中的包装类型详解 在 JavaScript 中,我们有基本类型和对象类型两种数据类型. 基本类型包括 String,Number,Boolean,null,undefined 和 ...
- 004.MinIO-DirectPV分布式存储部署
MinIO部署介绍 部署概述 Kubernetes hostpath.local和本地静态配置都存在需要事先在node节点准备好可用的块存储或文件系统,例如对插入的硬盘,或者磁盘阵列做分区格式化,文件 ...
- CF1693D--单调区间
\(T_4\) 单调区间结题报告 题目描述 一句话题意:给定一个排列 \(a\) 算出有多少个区间 \([l , r]\) , 满足其可以划分为一个单调递增子序列和单调递减子序列,其中单调递增子序列长 ...