Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MathGL vs Qwt+qwtplot3d 
:(
    Опции темы
KVA
Дата 14.9.2010, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 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- полная совместимость со всем приложением.
- сложность(так пишут, сама не разбиралась)
- не заточена под вывод в реальном времени

Какие ещё плюсы-минусы знаете вы?
Помогите сделать выбор!
Спасибо.

PM MAIL   Вверх
W4FhLF
Дата 14.9.2010, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Цитата(KVA @  14.9.2010,  08:09 Найти цитируемый пост)
- не заточена под вывод в реальном времени


Ну почему, там есть необходимые средства для этого. Точнее интерфейс предусматривает, а реализовать придётся самому. 

В целом я бы прежде всего руководствовался следующими вещами. Qwt и тем более QwtPlot3D уже давно не развиваются и вряд ли получат развитие. В сущности, если нужно нечто сложнее того, что показано на картинках сайтов этих библиотек, то это придётся писать самому. Хотя надо отдать должное, что у этих библиотек очень гибкий интерфейс. 
MathGL самодостаточная библиотека с гигантским потенциалом в плане возможностей, однако она не заточена под Qt и несмотря на то, что имеет необходимые биндинги для qt всё равно достаточно далека от неё. Но зато, один раз разобравшись и набрав немного практических знаний, вы решите все ваши задачи без особого геммороя. Т.е. если проект крупный, то конечно оптимальным является MathGL. 
Ещё бы вам советовал изучить вопрос возможности интерактивной работы с графиками MathGL из Qt, если вам это необходимо, потому что там могут возникнуть проблемы. 

Это сообщение отредактировал(а) W4FhLF - 14.9.2010, 08:31


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
borisbn
Дата 14.9.2010, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Небольшое замечание по производительности компонент. Ни один человек не сможет увидеть 1000 кадров/сек, поэтому отображать данные в реальном масштабе времени нет смысла. Есть смысл копить их в реальном времени, а отображать 30-20 кадров/сек.
Я, например, делал так: создаю поток, который занимается отображением, передаю ему данные на каждом цикле получения данных ( в твоём случае каждую мс ), а отрисовываю раз в 50 мс ( или реже, в зависимости от загрузки системы ). Получается примерна так ( псевдокод )
Код

DrawThread::run() {
lock_data();
copy_data_to_local_array();
unlock_data();
emit draw();
sleep( 50 );
}

WorkThread::run() {
get_data();
lock_draw_data();
copy_data_to_draw_thread()
unlock_draw_data();
}



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
KVA
Дата 14.9.2010, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 18.11.2009

Репутация: нет
Всего: 1



qwt-5.2.1 от 11.04.2010, так что вроде норм, а вот qwtplot3d-0.2.7 от 25.07.2007

Цитата

MathGL...однако она не заточена под Qt и несмотря на то, что имеет необходимые биндинги для qt всё равно достаточно далека от неё.


А можно поподробнее? 

Цитата

Т.е. если проект крупный, то конечно оптимальным является MathGL


Проект крупный, но полностью на Qt4...
Что делать?

PM MAIL   Вверх
W4FhLF
Дата 14.9.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 4
Всего: 121



Цитата(KVA @  14.9.2010,  11:51 Найти цитируемый пост)
qwt-5.2.1 от 11.04.2010, так что вроде норм, а вот qwtplot3d-0.2.7 от 25.07.2007


Да, там была исправлена ошибка с поддержкой Qt 4.6 и ещё что-то по мелочи вроде. Ничего нового не добавляется уже несколько лет. 


Цитата(KVA @  14.9.2010,  11:51 Найти цитируемый пост)
А можно поподробнее? 


Ну Qwt была создана на базе Qt и соответственно вся идеология и весь функционал основан на принципах, которые приняты в Qt. Для MathGL всё немного по-другому. Эта достаточно универсальная библиотека и Qt для неё лишь фронтенд. Т.е. у вас будет виджет типа QMathgl и вы на нём будете всё отрисовывать через внутренние функции этой библиотеки, которая тянет за собой другие библиотеки. Соответственно при достаточно плотной интеграции могут возникать проблемы (например, интерактивная работа с графиками мышкой или горячими клавишами). А может ваши задачи таковы, что и проблем никаких никогда не возникнет. Это вам виднее.

Цитата(KVA @  14.9.2010,  11:51 Найти цитируемый пост)
Проект крупный, но полностью на Qt4...Что делать?


Вам следует выбрать задачу, что-нибудь посложнее, которая будет близка к тем, что вы собираетесь решать. И решить её с применением обеих библиотек. 



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
KVA
Дата 15.9.2010, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 18.11.2009

Репутация: нет
Всего: 1



Цитата

И решить её с применением обеих библиотек. 


Наверное это самый верный подход, но откуда взять время? 

Хотелось бы услышать ещё мнения.

Это сообщение отредактировал(а) KVA - 17.9.2010, 06:08
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.