如何优化具有大量点的图形的绘制算法?

时间:2018-07-19 05:03:10

标签: algorithm qt plot graph graphics

我有一个用Qt编写的简单绘图仪模块,它仅基于点矢量绘制图形。

它工作得很好,但是当有成千上万的点时,它开始出现性能问题。

绘画算法很原始-只需将for语句中的点添加到QPolygonF中,然后再画一条折线。伪代码:

for (visiblePartOfPointsOnScreen, step = 1)
    polyline.append(getPointFromSource)

drawPolyline(polyline)

大量点(例如100k)根本无法在屏幕上显示(1点-1像素)。因此,例如,如果缩小正弦图,它将看起来像一个矩形。根据我们无法显示所有这些点的事实,我正在寻找一种优化过程的方法-不绘制不必要的点(在此比例下不可见),而是保存正确的缩放图形形状。

我做了某种优化-根据屏幕上的点数(如果太大),我跳过了几个点,即step超过了1。绘画有所增加,但在移动或缩放图形时会引起图形伪影。

能否请您告诉我优化点画的最佳方法是什么?

0 个答案:

没有答案