我有一个用Qt编写的简单绘图仪模块,它仅基于点矢量绘制图形。
它工作得很好,但是当有成千上万的点时,它开始出现性能问题。
绘画算法很原始-只需将for语句中的点添加到QPolygonF
中,然后再画一条折线。伪代码:
for (visiblePartOfPointsOnScreen, step = 1)
polyline.append(getPointFromSource)
drawPolyline(polyline)
大量点(例如100k)根本无法在屏幕上显示(1点-1像素)。因此,例如,如果缩小正弦图,它将看起来像一个矩形。根据我们无法显示所有这些点的事实,我正在寻找一种优化过程的方法-不绘制不必要的点(在此比例下不可见),而是保存正确的缩放图形形状。
我做了某种优化-根据屏幕上的点数(如果太大),我跳过了几个点,即step
超过了1。绘画有所增加,但在移动或缩放图形时会引起图形伪影。
能否请您告诉我优化点画的最佳方法是什么?