2013-08-07 8 views
1

Привет В настоящее время я рисую данные из файла через канал в C++. Я написал функцию, которая читает в текстовом файле, обрабатывает информацию, обрабатывает данные в текстовом файле и намечает метки и стрелки по мере необходимости.Gnuplot C++ построение графика в реальном времени из txt-файлов

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

Например:

for (unsigned int i = 0; i< 10; i++){ 
    Processing_Plotting(i, gp); 
} 

Это код, я имею в основной программе, которая будет строить текстовый файл, указанный «я». например: laserData1, laserData2 и т. д.

В настоящее время сюжет мерцает и не читается из-за скорости, которую он вызывает. Я искал способ построения данных в реальном времени с помощью Gnuplot, но не имел большой удачи, любая помощь была бы оценена. Благодаря

Изображение рода вещей я черчение: http://imgur.com/3eTpMaB

+1

Вы уверены, что gnuplot сделан для этого? Я думаю, что это может быть спроектировано для статического файла сюжета. –

+1

Я наткнулся на это - http://users.softlab.ece.ntua.gr/~ttsiod/gnuplotStreaming.html - некоторое время назад он никогда не пробовал, но Вас может заинтересовать следующая информация. –

ответ

2

Существует пример анимации, который поставляется с gnuplot-iostream библиотеки. Он не мерцает, по крайней мере, не на моей машине (Linux). Отказ от ответственности: я являюсь автором этой библиотеки, так что это бесстыдный плагин.

Ваш фрагмент кода не показывает, как вы на самом деле взаимодействуете с gnuplot, однако есть три вещи, которые вы обязательно должны сделать: 1) не закрывать, а затем снова открывать канал после каждого кадра, 2) вызывать fflush на трубы после каждого кадра и 3) добавить задержку между кадрами. Чтобы задержать вызов Linux ::usleep(microseconds) (и включить unistd.h), в Windows звоните ::Sleep(milliseconds) и включите windows.h.

Дело в том, что данные анимации трубопроводов в gnuplot состоят в том, что вы не знаете, поддерживает ли он. Поэтому флеш и сон жизненно важны. Но я построил осциллограф из gnuplot, поэтому я знаю, что он может работать хорошо.

+0

Привет, им, используя трубки для отправки в gnuplot. Рассмотрев мой код, он работает намного лучше. он слегка мерцает, но его гораздо больше, чем раньше. Возможно, просто нужно настроить значения сна. Cheers –

+0

К сожалению, этот API не поддерживает 3d-графики. – Madhatter

+1

Он поддерживает 3D-графики. В пакет включены такие примеры. –

Смежные вопросы