我正在用 C++ 编写一个程序,它通过 UDP 套接字获取 4 维点数据,然后在 6 个单独的 2D 散点图中绘制数据。例如,如果我们将维度命名为:A、B、C、D,则六个二维图将是 AxB、AxC、AxD、BxC、BxD 和 CxD。在几个小时的过程中,该程序累积了约 50K 点。
目前我使用立即模式绘制每个点一次。我不会在绘制调用之间清除缓冲区,因此之前绘制的点会一直存在,直到缓冲区被清除。我对这种方法不满意,因为即时模式很慢且已弃用。当我必须清除缓冲区时,例如当窗口重新调整大小时,我会丢失所有以前绘制的数据。我想提出一个解决方案,在缓冲区被清除后允许数据持久化。此外,如果绘图也可以通过窗口重新大小轻松缩放,那就太好了。
我曾考虑为每个坐标系维护一个顶点数组(具有 2 个维度),但这需要 6 个单独的数组,并且需要 3 倍于维护具有所有 4 个维度的数组的内存。
我是否以正确的方式考虑这个问题?这个问题的正确解决方案是什么?
最终目标是拥有一个尽可能接近实时地显示数据的应用程序。
编辑是否有可能在它们进入时继续一个一个地绘制点,当我需要调整屏幕大小时,抓取屏幕的图像,然后显示该图像的调整大小版本?