2015-04-03 5 views
1

Я получаю данные измерения потока от ультразвукового устройства, движущегося внутри трубопровода, и я хочу сделать скользящий/реальный график этих измерений. Ось Y будет представлять собой градиент 360 градусов вокруг трубы, а ось X будет представлять собой по длине положение в миллиметрах. Другими словами, ось X будет обновляться и перемещаться с той же скоростью, что и сканер, в то время как новые данные поступают (приблизительно 40 Гц). Значение в каждой координате (x, y) представляет собой одно измерение, которое должно быть сопоставлено с цветом в цветовой палитре.Выполнение скользящего 2D-графика в реальном времени в Qt

Я новичок в графике (системы & backend guy), и я смотрел QImage, QWT и QCustomPlot, но ни один из них не кажется прямым решением проблемы без необходимости вручную создавать 2D-матрицу, нарисовать ее QImage, а также обновить и сдвинуть координаты каждого datapoint и перерисовать для перемещения/прокрутки. QCustomplot делает это очень красиво для графиков, но я не вижу, как это можно применить к их цветовым картам.

Любые намеки на фреймворки или пакеты, которые предоставляют примитивы (или виджетов) для такого рода сюжетов, будут приветствоваться.

ответ

0

Это можно сделать с помощью Qwt. Трюк создает обертку вокруг данных серии, которая запускает реплика каждый раз, когда вы добавляете точку данных. Если вы хотите получить фантазию, вы можете добавить таймер, который удаляет старые данные из серии и запускает другой реплика.

См. Примеры процессора, осциллографа и реального времени, которые поставляются с исходным кодом Qwt. Они реализуют этот трюк.

+0

Спасибо! Попробуйте это и сообщите, как это происходит. – larslars

+0

На самом деле я нашел Qwt довольно сложным в использовании, но я применил базовый QPainter для рисования матрицы QPixmaps, которая затем смещается при добавлении новых элементов и перерисовывается на paintEvents. – larslars