绘制 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 数据的工具?的主要内容,如果未能解决你的问题,请参考以下文章