For line plots one possible option is to use the Douglas Peucker algo, that is implemented in Qwt and available as QwtWeedingCurveFitter. The algo is too slow to apply it each time your curve gets painted ( using QwtPlotCurve::setCurveFitter() ), but you can reduce the number of points before passing them as curve points.
In combination with polygon clipping ( QwtPlotCurve::ClipPolygons ) you can implement a data object that returns different sets of points according to the current scales. For large ranges you can reduce the number of points using weeding and for small ranges ( zoomed in ) polygon clipping will reduce the number of points to be painted. This leads to a fast and responsive plot without losing details.
This topic has been discussed a couple of times on this forum as "different levels of detail".
HTH,
Uwe





Reply With Quote
Bookmarks