Привет я в настоящее время чертит данные из файла через канал в C ++. Я написал функцию, которая читает в текстовом файле, обрабатывает информацию, наносит на карту данные в текстовом файле и наносит метки и стрелки по мере необходимости.
Теперь мне нужен способ плавного построения графика в цикле, чтобы на каждой итерации читался и отображался другой текстовый файл без мерцания окна Gnuplot.
Например:
for (unsigned int i = 0; i< 10; i++){
Processing_Plotting(i, gp);
}
Это код, который у меня есть в основной программе, который будет печатать текстовый файл, обозначенный ‘i’. например: laserData1, laserData2 и т. д.
В настоящее время сюжет мерцает и не читается из-за скорости, которую он вызывает.
Я искал способ отображения данных в реальном времени с помощью Gnuplot, но мне не повезло,
любая помощь будет оценена. Спасибо
Картина того, что я рисую:
http://imgur.com/3eTpMaB
Существует пример анимации, которая поставляется с Gnuplot-iostream библиотека. Он не мерцает, по крайней мере, на моей машине (Linux). Отказ от ответственности: я автор этой библиотеки, так что это бесстыдная вилка.
Ваш фрагмент кода не показывает, как вы на самом деле взаимодействуете с gnuplot, однако вы должны обязательно выполнить три вещи: 1) не закрывать, а затем снова открывать канал после каждого кадра, 2) вызывать fflush
на трубе после каждого кадра и 3) добавить задержку между кадрами. Отложить на Linux вызов ::usleep(microseconds)
(и включают unistd.h
), на Windows звоните ::Sleep(milliseconds)
и включать windows.h
,
Суть передачи данных анимации в gnuplot заключается в том, что вы не знаете, соответствует ли она. Так что прилив и сон жизненно необходимы. Но я построил осциллограф из gnuplot, так что я знаю, что он может хорошо работать.
Других решений пока нет …