Визуализация от C/C++ через интерфейс канала Gnuplot

Я пытаюсь использовать интерфейс канала для gnuplot (стандартный gnuplot_i. {cpp, hpp}) для генерации отображения в режиме реального времени значений, которые постоянно изменяются в рамках другой программы, записанной в C++. Это работает хорошо, но я хотел видеть, были ли у кого-либо какие-либо предложения для улучшения.

Эта реализация содержит удобный метод вывести на печать единственный вектор и 2 вектора как 2D график. Это достигло, это путем выписывания во временный файл через стандартную библиотеку звонит в функцию mktemp и затем использования, которые, как введено к gnuplot выводят вызов на печать. Это генерировало слишком много временных файлов и, казалось, не работало хорошо, когда частота обновления на графике высока (возможно, IO, ограниченный в точке). Я решил использовать '-' псевдо файл в графике, называют и просто отправляют векторы непосредственно в канал (законченный одной строкой с "e" на нем). Это работает лучше, но все еще не является большим.

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

@Andy Ross

У меня нет "требований" по сути. То, что я подразумевал под пленкой, было то, что, возможно, был более изящный подход к выполнению, чего я делал попытку при тихом использовании gnuplot. Хотя изящный субъективно, я нахожу подход, который я в настоящее время проявляю особенно неэлегантный. То, под чем я подразумевал безопасный, было, знал ли кто-либо в какой частота обновления, там будут проблемы IO (например, задержка, тупик дисплея, и т.д.) с упомянутым подходом.

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

  • Я нашел, что они обычно нетривиальны для установки правильно на различной архитектуре тем более, что некорневой (и когда они требуют зависимостей, которые не являются стандартными через Ose).
  • Они подвергаются дополнительной зависимости от компиляции для других людей, использующих это программное обеспечение.
  • Кажется, нет никакого реального стандарта, который большинство людей использует с этой целью afiak (самостоятельно, а также большинство людей, с которыми я работаю обычно, просто сохраняет от файлов типа журнала и действительно отправляет выполненный анализ в MATLAB).
  • Я знаю/изучаю gnuplot синтаксис. Я не знаю синтаксис superPlottingApiXX.
  • Набор функций gnuplot почти идеален для типов вещей, которые я хотел бы иметь возможность сделать с этим программным обеспечением.

Однако, если у Вас есть какие-либо конкретные предложения с точки зрения библиотек графического изображения C/C++, которые походят на хорошую подгонку, данную вышеупомянутый список, я всегда интересуюсь предложениями (предупреждение: Я уже осмотрел хороший бит для нахождения их).

9
задан bpw1621 2 February 2010 в 05:08
поделиться

2 ответа

Slicker? Безопасно? Можете ли вы уточнить свои требования?

Похоже, что вы пытаетесь сделать анимированную визуализацию с помощью инструмента, предназначенного для генерации статических изображений. Если ваш дисплей так прост, как вы говорите, почему бы не написать быстрое приложение с графическим интерфейсом (используя выбранный вами набор инструментов), чтобы вместо этого сделать чертеж?

.
0
ответ дан 3 November 2019 в 07:13
поделиться

есть библиотека C2gnuplot, которую я написал несколько лет назад. Она очень проста, но может дать несколько советов. В основном она использует FIFO-файлы для передачи данных в Gnuplot и может генерировать анимацию из графиков. Здесь - видео, созданное с помощью приложения. Надеюсь, это будет вам полезно.

2
ответ дан 3 November 2019 в 07:13
поделиться