| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > MathGL vs Qwt+qwtplot3d |
| Автор: KVA 14.9.2010, 08:09 |
| Здравствуйте. Передо мной встал вопрос какую библиотеку использовать для отрисовки графиков в Qt4.6. Имеется сигнал, который приходит каждую мс. Необходимо выводить график в режиме осциллографа, реального времени, стационарного сигнала. Также придется реализовывать кучу математических функций по преобразованию сигнала и вывода результата преобразования в том числе и 3-D. Стационарных сигналов может быть на графике несколько с разными шкалами по оси значений. Необходим курсор по значениям сигнала, метки на значениях, табличное представление сигнала. Короче полноценное графическое приложение. Рассматривая имеющиеся библиотеки остановила свой взор на libmgl.dll c оберткой под Qt libmgl-qt.dll и qwt.dll c qwtplot3d.dll. Для libmgl.dll c оберткой под Qt libmgl-qt.dll: + русская поддержка. - требуются дополнительные gsl, jpeg,.. Для libmgl-qt.dll и qwt.dll c qwtplot3d.dll: + производитель trolltech- полная совместимость со всем приложением. - сложность(так пишут, сама не разбиралась) - не заточена под вывод в реальном времени Какие ещё плюсы-минусы знаете вы? Помогите сделать выбор! Спасибо. |
| Автор: W4FhLF 14.9.2010, 08:30 |
Ну почему, там есть необходимые средства для этого. Точнее интерфейс предусматривает, а реализовать придётся самому. В целом я бы прежде всего руководствовался следующими вещами. Qwt и тем более QwtPlot3D уже давно не развиваются и вряд ли получат развитие. В сущности, если нужно нечто сложнее того, что показано на картинках сайтов этих библиотек, то это придётся писать самому. Хотя надо отдать должное, что у этих библиотек очень гибкий интерфейс. MathGL самодостаточная библиотека с гигантским потенциалом в плане возможностей, однако она не заточена под Qt и несмотря на то, что имеет необходимые биндинги для qt всё равно достаточно далека от неё. Но зато, один раз разобравшись и набрав немного практических знаний, вы решите все ваши задачи без особого геммороя. Т.е. если проект крупный, то конечно оптимальным является MathGL. Ещё бы вам советовал изучить вопрос возможности интерактивной работы с графиками MathGL из Qt, если вам это необходимо, потому что там могут возникнуть проблемы. |
| Автор: borisbn 14.9.2010, 08:49 | ||
| Небольшое замечание по производительности компонент. Ни один человек не сможет увидеть 1000 кадров/сек, поэтому отображать данные в реальном масштабе времени нет смысла. Есть смысл копить их в реальном времени, а отображать 30-20 кадров/сек. Я, например, делал так: создаю поток, который занимается отображением, передаю ему данные на каждом цикле получения данных ( в твоём случае каждую мс ), а отрисовываю раз в 50 мс ( или реже, в зависимости от загрузки системы ). Получается примерна так ( псевдокод )
|
| Автор: KVA 14.9.2010, 11:51 | ||||
qwt-5.2.1 от 11.04.2010, так что вроде норм, а вот qwtplot3d-0.2.7 от 25.07.2007
А можно поподробнее?
Проект крупный, но полностью на Qt4... Что делать? |
| Автор: KVA 15.9.2010, 07:02 | ||
Наверное это самый верный подход, но откуда взять время? Хотелось бы услышать ещё мнения. |