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 ...
随机推荐
- [oeasy]python0022_框架标题的制作_banner_结尾字符串_end
结尾字符串(end) 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面存的是 cpu 指令 可以执行的那种 我们可以把指令对应的汇编找到 ...
- TIER 0: Dancing
TIER 0: Dancing SMB Server Message Block 是一种网络协议,用于在计算机网络上共享文件.打印机和其他资源.它最初由微软开发,用于在 Windows 操作系统之间进 ...
- CF1951
A link 这个题就是讨论. 首先,如果没有\(1\)就一定可以. 如果有\(1\). 如果长度为\(2\)一定不行. \(1\)的个数为奇数不行. 如果为偶数 有一个小点:如果是\(2\)个\(1 ...
- 【干货】流量录制回放工具:jvm-sandbox-repeater
在软件开发和测试过程中,我们经常会遇到需要对网络请求进行录制和回放的需求,以便进行调试.测试和分析.为了模拟真实的用户请求,我们通常会使用各种流量录制回放工具来记录并重放网络请求. 其中,jvm-sa ...
- CMake学习(一)
CMake学习(一) 1.简介 CMake是一个强大的软件构建系统,可以用简单的语句来描述所有平台的安装(编译过程) 可以编译源代码.制作程序库.产生适配器(wrapper).还可以用任意的顺序建构执 ...
- 对比python学julia(第四章:人工智能)--(第一节)OpenCV编程初步(3)
1.4. 人脸检测 (续上) 3.检测视频中的人脸 在VSCode环境中,新建一个空白源文件,以detect_video.jl作为文件名保存到项目文件夹中,然后编写程序检测视频流中的人脸(正脸).由 ...
- 【Vue2】Computed 计算属性
计算属性在编写的时候是一个方法 但是在调用的时候作为属性使用 <!DOCTYPE html> <html lang="en"> <head> & ...
- 甄嬛霸气照 —— Chinese Queen
- Ubuntu18.04终端alacritty安装及配置
想在Ubuntu上安装alacritty终端,发现不能直接安装,在网上找到教程: Linux上安装使用最快的 GPU 加速的终端仿真器Alacritty 根据教程成功在Ubuntu18.04桌面系统上 ...
- 多线程之park()与interrupt()的理解
1.背景 其他不多说,很多时候面试会问 2.代码 package com.ldp.demo01; import com.common.MyThreadUtil; import lombok.exter ...