用于绘制QVector3D数据的工具?

时间:2016-03-02 21:35:13

标签: python c++ qt plot 3d

我有一系列点(x,y,z),我想在3D平面中绘制一个矢量。 Something like this.

我在其他地方成功使用QCustomPlot,但文档说它不能用于3D绘图。谷歌搜索出现了QwtPlot3D,但据我所知,它自2007年以来一直没有得到维护,而且我不想因为我使用Qt5而遇到任何问题。我也在看QtCharts,但似乎无法找到任何绘制x,y,z数据点的例子。

有没有人有关于在我的C ++ / Qt应用程序中包含3D图形的提示?是否有一个工具可以使用Qt而不是C ++更好地使用Python?或完全是另一种技术?此图表将成为更大UI的一部分。

1 个答案:

答案 0 :(得分: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& amp;的OpenGL教科书。 Ritchie或Perl骆驼书。

可能有一些Qt 3D图形项目在某个地方享有积极的发展,幸运的是,其他一些SO用户可能会知道一个。