绘制 QVector3D 数据的工具?

Posted

技术标签:

【中文标题】绘制 QVector3D 数据的工具?【英文标题】:Tools for plotting QVector3D data? 【发布时间】:2016-03-02 21:35:13 【问题描述】:

我有一系列点 (x,y,z),我想在 3D 平面中将它们绘制为向量。 Something like this.

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

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

【问题讨论】:

【参考方案1】:

这可能会有所帮助,虽然我没有使用过:

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 用户会知道一个。

【讨论】:

以上是关于绘制 QVector3D 数据的工具?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 QVector3D 与 QMatrix3x3 相乘?

珍藏 史上最全热图绘制工具及操作流程(一)

绘制数据流程图简单创意方法介绍

数据可视化之美-动态图绘制(以Python为工具)

使用DEM和矢量数据绘制地图

如何用tablea7绘制canvas