Есть некий прибор который может выдавать измерения по N каналам с определенной частотой, эти данные программа считывает и накапливает и отображает в виде графиков, причем по оси X может быть как время, так и любой из этих каналов (те получается график зависимости остальных каналов от этого).
Проблема в том, что при опросе 20 каналов с частотой 100 Гц в течении скажем получаса, получается несколько миллионов точек, которые надо нарисовать за приемлемое время. Сигнал каждого канала не совсем идеальный - есть и шумы АЦП и сам измеряемый сигнал имеет свои шумы - например вибрация.
Пример того что надо рисовать на картинке. Пример конечно не совсем реалистичный, но хорошо показывает суть проблемы. Надо максимально сохранить форму кривой и при этом радикально уменьшить количество отрисовываемых линий. Все усугубляется тем, что графики можно увеличивать/уменьшать и скроллить.
Вариант просто брать точки через 1/2/5/10 плох, тем что можно потерять значимые точки. Анализ угла между соседними линиями не даст эффекта из-за шумов. Выполнять фильтрацию/сглаживание данных на данном этапе тоже нельзя.
В идеале надо получить из нескольких миллионов отрезков, пару-тройку тысяч которые будут хорошо передавать картину.