2016-03-02 29 views
0

我有一系列點(x,y,z),我想在3D平面中繪製爲矢量。 Something like this.繪製QVector3D數據的工具?

我在其他地方成功使用QCustomPlot,但文檔說它不能用於3D圖。谷歌搜索出現了QwtPlot3D,但據我所知,它自2007年以來一直沒有得到維護,而且我也不想因爲使用Qt5而遇到任何問題。我也在看QtCharts,但似乎無法找到繪製x,y,z數據點的任何示例。

有沒有人有在我的C++/Qt應用程序中包含3D圖形的提示?有沒有一種工具可以更好地用Python與Qt合作,而不是C++?或完全是另一種技術?該圖將成爲更大UI的一部分。

回答

0

這可能幫助,雖然我還沒有使用它:

http://doc.qt.io/QtDataVisualization/

花一點時間尋找到OpenGL的。要在Qt中顯示OpenGL場景,您可以使用QGLWidget(用於Qt 4.x)或QOpenGLWidget(用於Qt 5.x)。 OpenGL允許您編寫在GPU卡上運行的圖形,這意味着您可以使用3D視頻遊戲所用的相同馬力。考慮到時間和傾向,你可以建立一個良好的3D圖形庫。

https://www.opengl.org/

http://doc.qt.io/qt-5/qopenglwidget.html

Qt的教程可以幫助,但你也想讀其他的OpenGL教程。這裏有一些教程針對舊版本的Qt:

ftp://ftp.informatik.hu-berlin.de/pub1/Mirrors/ftp.troll.no/QT/pub/developerguides/qtopengltutorial/OpenGLTutorial.pdf

http://www.decom.ufop.br/sibgrapi2012/eproceedings/tutorials/t3-survey_paper.pdf

教程往往先從「快速模式」的例子,這意味着CPU不斷參與更新數據和寫入數據到GPU。只要掌握了基本知識,就會實現「保留模式」代碼,這意味着(非常鬆散地)GPU管理數據,並且將CPU資源需求降至最低。

這一切都說,進入OpenGL是一種承諾。如果您希望用戶能夠更改圖表的視點,或放大/縮小,或將鼠標懸停在圖表上以檢查各個值等,則需要一段時間才能實現。對於一個如此廣泛使用的標準來說,很奇怪的是,文檔和可用的教科書並不是更好 - 不要期望找到與Kernighan & Ritchie或Perl駱駝書相同的OpenGL教科書。

可能有一些Qt 3D繪圖項目處於積極開發的狀態,幸運的是也許其他一些SO用戶會知道一個。