10-1_Qt 5.9 C++開發指南_Data Visualization實現數據三維顯示

Data Visualization 是 Qt 提供的用于數據三維顯示的模塊。在 Qt 5.7 以前只有商業版才有此模塊,而從Qt5.7 開始此模塊在社區版本里也可以免費使用了。Data Visualization 用于數據的三維顯示,包括三維柱狀圖、三維空間散點、三維曲面等。Data Visualization 與 Qt Charts 類似,也是基于Qt的圖形視圖架構。Data Visualization 的功能無法和一些專業的三維顯示類庫相提并論,但是對于一些簡單的三維數據顯示是比較實用的,例如一些科學計算結果的三維顯示。

本章介紹 Data Visualization 模塊的一些主要功能的使用,主要是三維柱狀圖、三維空間散點和三維曲面的顯示。

文章目錄

  • 1. DataVisualization 模塊概述
  • 2. 利用 DataVisualization 模塊實現數據三維顯示

1. DataVisualization 模塊概述

Data Visualization 的三維顯示功能主要由 3種三維圖形類來實現,分別是三維柱狀圖類Q3DBars,三維空間散點類Q3DScatter,三維曲面類Q3DSurface。這3 個類的父類是 QAbstract3DGraph,是從QWindow 繼承而來的,繼承關系如圖10-1 所示。

在這里插入圖片描述

Data Visualization與 Qt Charts 類似,都基于 Qt 的圖形視圖結構,所以一個三維圖形也是由圖表、序列、坐標軸等元素組成的。Q3DBars、Q3DScatter、Q3DSurface 相當于 Qt Charts 中的QChart,而每一種三維圖形對應一種三維序列,Data Visualization 中的3種序列類見圖10-2

在這里插入圖片描述

一種序列類只能用于某種三維圖形類,如QBar3DSeries只能用作三維柱狀圖Q3DBars 的序列而不能作為三維散點圖 Q3DScatter 的序列。在一個圖中可以有多個同類型的序列,如三維曲面圖Q3DSurface 中可以有多個 QSurface3DSeries 序列,用于顯示不同的曲面。

與QChart 有坐標軸類一樣,三維圖形也有坐標軸類。有兩種三維坐標軸類,QValue3DAxis用于數值型坐標軸,QCategory3DAxis 用于文字型坐標軸,它們都繼承自 QAbstract3DAxis(如圖 10-3 所示)

在這里插入圖片描述

Data Visualization 模塊中有數據代理(data proxy)類,數據代理類就是與序列對應,用于存儲序列的數據的類。因為三維圖形類型不一樣,存儲數據的結構也不一樣,例如三維散點序列 QSatter3DSerics 存儲的是一些三維數據點的坐標,只需要用一維數組或列表就可以存儲這些數據,而QSurface3DSeries 序列存儲的數據點在水平面上是均勻網格分布的,需要二維數組才可以存儲相應的數據。為此,對于每一種序列,都有一個數據代理類,它們都繼承自QAbstractDataProxy,每個數據代理類還有一個基于項數據模型的數據代理子類(如圖 10-4 所示)。

在這里插入圖片描述

對于三維曲面序列 QSurface3DSeries,還有一個專門用于顯示地圖高程數據的數據代理類QHeightMapSurfaceDataProxy,可以將一個圖片表示的高程數據顯示為三維曲面。用戶也可以根據需要從QAbstractDataProxy 繼承,定義自己的數據代理類。

要在項目中使用 Data Visualization 模塊,需要在項目配置文件中添加下面一行語句:

Qt += datavisualization

在使用 Data Visualization 模塊中的類的頭文件或源程序文件中,還需要加入下面兩行語句。如果只需使用模塊中的部分類,可以單獨包含某些類。

#include <QtDataVisualization>
using namespace QtDataVisualization;

2. 利用 DataVisualization 模塊實現數據三維顯示

利用 DataVisualization 模塊實現三維柱狀圖、三維散點圖、三維曲面繪圖、三維地形圖實例需結合對應實例學習使用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鑒源實驗室丨汽車網絡安全攻擊實例解析(二)

作者 | 田錚 上海控安可信軟件創新研究院項目經理 來源 | 鑒源實驗室 社群 | 添加微信號“TICPShanghai”加入“上海控安51fusa安全社區” 引言&#xff1a;汽車信息安全事件頻發使得汽車行業安全態勢愈發緊張。這些汽車網絡安全攻擊事件&#xff0c;輕則給企業產品發布及產品…

高效數據傳輸:輕松上手將Kafka實時數據接入CnosDB

本篇我們將主要介紹如何在 Ubuntu 22.04.2 LTS 環境下&#xff0c;實現一個KafkaTelegrafCnosDB 同步實時獲取流數據并存儲的方案。在本次操作中&#xff0c;CnosDB 版本是2.3.0&#xff0c;Kafka 版本是2.5.1&#xff0c;Telegraf 版本是1.27.1 隨著越來越多的應用程序架構轉…

無涯教程-Perl - redo函數

描述 此函數將重新啟動當前循環,而不會強制判斷控制語句。塊中不再執行任何語句。如果存在繼續塊,將不會執行。如果指定了LABEL,則在LABEL標識的循環開始時重新開始執行。 語法 以下是此函數的簡單語法- redo LABELredo返回值 此函數不返回任何值。 例 以下是顯示其基本…

用友時空KSOA SQL注入漏洞復現(HW0day)

0x01 產品簡介 用友時空KSOA是建立在SOA理念指導下研發的新一代產品&#xff0c;是根據流通企業最前沿的I需求推出的統一的IT基礎架構&#xff0c;它可以讓流通企業各個時期建立的IT系統之間彼此輕松對話&#xff0c;幫助流通企業保護原有的IT投資&#xff0c;簡化IT管理&#…

以商業大數據技術助力數據合規流通體系建立,合合信息參編《數據經紀從業人員評價規范》團標

經國務院批準&#xff0c;由北京市人民政府、國家發展和改革委員會、工業和信息化部、商務部、國家互聯網信息辦公室、中國科學技術協會共同主辦的2023 全球數字經濟大會于近期隆重召開。由數交數據經紀&#xff08;深圳&#xff09;有限公司為主要發起單位&#xff0c;合合信息…

深度剖析堆棧指針

為什么打印root的值與&root->value的值是一樣的呢 測試結果&#xff1a; *號一個變量到底取出來的是什么&#xff1f; 以前我寫過一句話&#xff0c;就是說&#xff0c;如果看到一個*變量&#xff0c;那就是直逼這個變量所保存的內存地址&#xff0c;然后取出里面保存的…

Skeleton-Aware Networks for Deep Motion Retargeting

Skeleton-Aware Networks for Deep Motion Retargeting解析 摘要1. 簡介2. Related Work2.1 運動重定向&#xff08;Motion Retargeting&#xff09;2.2 Neural Motion Processing 3. 概述&#xff08;Overview&#xff09;4. 骨骼感知深度運動處理4.1 運動表征4.2 骨架卷積4.3…

Spring Boot + Vue3前后端分離實戰wiki知識庫系統<十二>--用戶管理單點登錄開發一

目標&#xff1a; 在上一次Spring Boot Vue3前后端分離實戰wiki知識庫系統&#xff1c;十一&#xff1e;--文檔管理功能開發三我們已經完成了文檔管理的功能模塊開發&#xff0c;接下來則開啟新模塊的學習---用戶登錄&#xff0c;這塊還是有不少知識點值得學習的&#xff0c;…

指針與引用:C語言中的內存魔法

開始本篇文章之前先推薦一個好用的學習工具&#xff0c;AIRIght&#xff0c;借助于AI助手工具&#xff0c;學習事半功倍。歡迎訪問&#xff1a;http://airight.fun/。 也把我學習過程中搜集的資料分享給大家&#xff0c;希望可以幫助大家少走彎路&#xff0c;鏈接&#xff1a;h…

機器人CPP編程基礎-02變量Variables

機器人CPP編程基礎-01第一個程序Hello World 基礎代碼都可以借助人工智能工具進行學習。 C #include<iostream>using namespace std;main() {//Declaring an integer type variable A, allocates 4 bytes of memory.int A4;cout<<A <<endl;//Prints the a…

Matlab繪制圓形(rectangle函數、viscircles函數和圓的參數方程)

基于matlab繪制圓形 一、rectangle函數 對于繪制圓心坐標為&#xff08;x&#xff0c;y&#xff09;半徑為r的圓形&#xff0c;函數為&#xff1a; x0; y0; r1; rectangle(Position, [x-r,y-r,2*r,2*r], Curvature, [1 1],EdgeColor, r); axis equalEdgeColor表示顏色 二、…

多版本node環境搭建切換管理NVM

Node.js NVM 全名 Node Version Management 一、Node 模塊對象 參考博客 Node 模塊對象 二、Node 多版本管理NVM &#xff08;1&#xff09;參考 Node 多版本管理 &#xff08;2&#xff09;github上NVM工具 nvm-windows mirrors / coreybutler / nvm-windows GitCode…

消息隊列(12) - 定義服務器類

目錄 前言設計思想 前言 之前,我們寫了通信協議的具體設計,接下來我們設計服務器類 設計思想 我們先只考慮一個虛擬主機的情況下, 在一個虛擬主機的情況下,我們需要有一個session會話來幫助我們存儲信息,并且既然是網絡通信,那么socket關鍵字肯定也必不可少,我們在引入一個線…

解決lldb調試時可能出現的personality set failed: Function not implemented

最近在嘗試使用Visual Studio 2022遠程連接Linux進行C/C的開發&#xff0c;由于CentOS風波不斷&#xff0c;所以現在的開發基本上都是使用ubuntu了&#xff0c;但是目前VS2022有一些BUG&#xff0c;就是遠程調試時&#xff0c;如果目標系統是ubuntu則會出現啟動調試器很慢的問題…

mysql高并發下主鍵自增打來的問題

在一般情況下&#xff0c;在新增領域對象后&#xff0c;都需要獲取對應的主鍵值。使用應用層來維護主鍵&#xff0c;在一定程度上有利于程序性能的優化和應用移植性的提高。在采用數據庫自增主鍵的方案里&#xff0c;如果JDBC驅動不能綁定新增記錄對應的主鍵&#xff0c;就需要…

LeetCode 1281. 整數的各位積和之差

【LetMeFly】1281.整數的各位積和之差 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/subtract-the-product-and-sum-of-digits-of-an-integer/ 給你一個整數 n&#xff0c;請你幫忙計算并返回該整數「各位數字之積」與「各位數字之和」的差。 示例 1&#xff1a; …

學習筆記整理-JS-03-表達式和運算符

[[toc]] 一、表達式和運算符 1. 表達式 表達式種類 算術、關系、邏輯、賦值、綜合 二、JS基本表達式 1. 算術運算符 意義運算符加減-乘*除/取余% 加減乘除 加減的符號和數學一致&#xff0c;乘號是*號&#xff0c;除法是/號默認情況&#xff0c;乘除法的優先級高于加法和…

安卓源碼分析(10)Lifecycle實現組件生命周期管理

參考&#xff1a; https://developer.android.google.cn/topic/libraries/architecture/lifecycle?hlzh-cn#java https://developer.android.google.cn/reference/androidx/lifecycle/Lifecycle 文章目錄 1、概述2、LifeCycle類3、LifecycleOwner類4、LifecycleObserver類 1、…

數據庫字段命名導致的SQL報錯

1.表設計 create table variables (id bigint not null comment 主鍵,business_key varchar(128) null comment 業務key,key varchar(128) null comment Map中的key,value varchar(255) null comment…

Centos yum命令大全

1.使用YUM查找軟件包 $ yum search python 2.列出所有可安裝的軟件包 $ yum list | grep python 3.列出所有可更新的軟件包 $ yum list updates 4.列出所有已安裝的軟件包 $ yum list installed | grep python