![]() |
|
![]() ![]() ![]() |
|
KVA |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 18.11.2009 Репутация: нет Всего: 1 |
Здравствуйте. Передо мной встал вопрос какую библиотеку использовать для отрисовки графиков в 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 |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 4 Всего: 121 |
Ну почему, там есть необходимые средства для этого. Точнее интерфейс предусматривает, а реализовать придётся самому. В целом я бы прежде всего руководствовался следующими вещами. Qwt и тем более QwtPlot3D уже давно не развиваются и вряд ли получат развитие. В сущности, если нужно нечто сложнее того, что показано на картинках сайтов этих библиотек, то это придётся писать самому. Хотя надо отдать должное, что у этих библиотек очень гибкий интерфейс. MathGL самодостаточная библиотека с гигантским потенциалом в плане возможностей, однако она не заточена под Qt и несмотря на то, что имеет необходимые биндинги для qt всё равно достаточно далека от неё. Но зато, один раз разобравшись и набрав немного практических знаний, вы решите все ваши задачи без особого геммороя. Т.е. если проект крупный, то конечно оптимальным является MathGL. Ещё бы вам советовал изучить вопрос возможности интерактивной работы с графиками MathGL из Qt, если вам это необходимо, потому что там могут возникнуть проблемы. Это сообщение отредактировал(а) W4FhLF - 14.9.2010, 08:31 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Небольшое замечание по производительности компонент. Ни один человек не сможет увидеть 1000 кадров/сек, поэтому отображать данные в реальном масштабе времени нет смысла. Есть смысл копить их в реальном времени, а отображать 30-20 кадров/сек.
Я, например, делал так: создаю поток, который занимается отображением, передаю ему данные на каждом цикле получения данных ( в твоём случае каждую мс ), а отрисовываю раз в 50 мс ( или реже, в зависимости от загрузки системы ). Получается примерна так ( псевдокод )
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
KVA |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 18.11.2009 Репутация: нет Всего: 1 |
qwt-5.2.1 от 11.04.2010, так что вроде норм, а вот qwtplot3d-0.2.7 от 25.07.2007
А можно поподробнее?
Проект крупный, но полностью на Qt4... Что делать? |
||||
|
|||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 4 Всего: 121 |
Да, там была исправлена ошибка с поддержкой Qt 4.6 и ещё что-то по мелочи вроде. Ничего нового не добавляется уже несколько лет. Ну Qwt была создана на базе Qt и соответственно вся идеология и весь функционал основан на принципах, которые приняты в Qt. Для MathGL всё немного по-другому. Эта достаточно универсальная библиотека и Qt для неё лишь фронтенд. Т.е. у вас будет виджет типа QMathgl и вы на нём будете всё отрисовывать через внутренние функции этой библиотеки, которая тянет за собой другие библиотеки. Соответственно при достаточно плотной интеграции могут возникать проблемы (например, интерактивная работа с графиками мышкой или горячими клавишами). А может ваши задачи таковы, что и проблем никаких никогда не возникнет. Это вам виднее. Вам следует выбрать задачу, что-нибудь посложнее, которая будет близка к тем, что вы собираетесь решать. И решить её с применением обеих библиотек. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
KVA |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 18.11.2009 Репутация: нет Всего: 1 |
Наверное это самый верный подход, но откуда взять время? Хотелось бы услышать ещё мнения. Это сообщение отредактировал(а) KVA - 17.9.2010, 06:08 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |