需要快速c++ qt/qwt散点图

Need fast c++ qt/qwt scatter plot

本文关键字:qwt 散点图 qt c++      更新时间:2023-10-16

我有一个巨大的2D点数组(大约300万对),我需要在基于qt的应用程序中以合理的速度渲染。

我尝试过使用QGraphicsScene,但即使在400000个原语上也很慢,所以我正在寻找qwt库。

它的sourceforge页面上有一个散点图示例截图,看起来正是我需要的,但我找不到任何类型的实际代码,可以用于这个数据,也没有根据API在qwt文档-它只提到不同类型的曲线。

所以得到一些散点图示例的指针和一些关于其性能的建议是很好的。对于其他c++ qt兼容的绘图库的建议也很受欢迎,这些库可以处理大量的数据。

散点图包含在"realtime"示例中:您想要的是IncrementalPlot类。我还建议,绘制所有300万个点是不合理的,因为现代屏幕只有大约200万像素:)因此,通过将相邻的点合并成一个依赖于缩放因子的阈值,似乎更好地事先简化绘图。

正如viens指出的那样,生成300万个点的散点图可能不是个好主意。

我使用OpenGL生成了30,000个点的3D散点图,取得了很好的性能。OpenGL速度快,与Qt集成得很好,但是,它是一个低级API,迫使你做很多繁琐的编码。

VTK可能是另一个选择。

MathGL是免费的(GPL)跨平台绘图库。它是用c++编写的,并具有Qt小部件。而且它相当快,但是300万点…在我的笔记本电脑上画一个图大约需要30秒。

你会建议使用OpenGL作为@vines说,特别是利用或显示列表glGenList或顶点缓冲区。用一百万个点作为基本顶点应该不难。