LINUX.ORG.RU

Вышла библиотека MathGL 1.7 и программа UDAV 0.4

 , , , ,


0

1

Библиотека MathGL предназначена для построения широкого спектра графиков (кривых, поверхностей, поверхностей уровня и т.д.). Библиотека платформонезависимая. Есть возможность экспорта графики в растровые (PNG, JPEG, TIFF) или векторные (EPS, SVG, IDTF) файлы, рисования в консольном режиме и т.д. Из нового:

  • полностью переписан парсер MGL (появились условия, циклы, юникод тест, экспорт в С++ и пр.),
  • экспорт в IDTF,
  • аппроксимация данных аналитической функцией (nonlinear fitting),
  • новые функции обработки данных,
  • улучшения в цветовой схеме, метках, С/фортран-интерфейсе и пр.

Сайт программы: http://mathgl.sf.net

UDAV — программа построения графиков и изображений на основе скриптового языка MathGL. Поддерживается широкий спектр графиков и функций редактирования данных. Оконный интерфейс (на основе Qt4) позволяет вращать/двигать/приближать графики мышкой и с помощью меню, включать/выключать прозрачность и освещение, смотреть на графики с разных углов зрения (при разных параметрах построения).

В этой версии полностью переписан интерфейс с использованием Qt4, сделано множество улучшений и изменений.

Сайт программы: http://udav.sf.net

>>> Подробности

Ответ на: комментарий от naryl

> Оно свободное? Интерфейс к C есть?

а) GPL

б) Вызовы Fortran можно использовать в C

Но, IMHO, лучше посмотреть в сторону http://root.cern.ch

Да и я бы не сранивал это с gnuplot. Разные ниши. PAW/ROOT - это операции надо гистограмами и "нтаплами", а gnuplot - это рисовалка двумерных графиков.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

>> Зачем эти дикосити? С++ - и все.

>Разработчики ROOTа тоже так думали. Народу не понравилось.

Естественно, вместо языка ориентированного на обработку данных получили этот асемблер-переросток с отвратительной документацией.

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

Evgueni ★★★★★
()
Ответ на: комментарий от naryl

> Оно свободное?

Свободней некуда.

> Интерфейс к C есть?

Интерфейс к Си у всего есть. Линкуешься с cernlib-ом, и делай что угодно, он много чего умеет.

Но лучше этого не делать, а просто дёргать его через пайп из командной строки (как собственно и gnuplot, не вижу смысла линковать его в свой код, он вполне самодостаточен).

anonymous
()
Ответ на: комментарий от Evgueni

> Но, IMHO, лучше посмотреть в сторону http://root.cern.ch

IMHO, лучше не смотреть. Качество отрисовки (без приложения сверхчеловеческих усилий) у PAW на порядок выше. Без лишней полировки почти сразу результат работы PAW можно публиковать хоть в самом понтовом журнале, а вот то, что ROOT нагенерит, надо долго и уныло подтачивать.

> PAW/ROOT - это операции надо гистограмами и "нтаплами", а gnuplot - это рисовалка двумерных графиков.

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

anonymous
()
Ответ на: комментарий от abalakin

> функция memset() не считается -- почти мгновенная

Если бы. У меня она, насколько я помню, 2-3 десятых долей секунды давала. Для задачи типа "нарисовать график функции f(x)=x" это многовато (простые вещи должны делаться МГНОВЕННО, без почти).

anonymous
()
Ответ на: комментарий от Jeepston

> Чем удав лучше/хуже тех же qtiplot и LabPlot?

Насчет LabPlot, то всем! Графикой (как качеством, так и количеством типов графики), возможностями обработки данных, удобством (хотя тут вопрос спорный :) ), переносимостью (работает под всеми основными платформами, по идее можно собрать и для КПК :) ).

Насчет qtiplot не знаю, не пробовал. Судя по сайту, то лучше графикой и бесплатностью. Про остальное сказать не могу.

Основное отличие в том, что удав ориентирован на скрипты. Если есть несколько однотипных данных, которые надо единообразно обработать и построить, то скриптовый подход явно предпочтительней.

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

С другой стороны для однократного просмотра графика данных (загрузил, посмотрел, стер) скрипты уступают. В удаве 0.3 такая возможность была, в версии 0.4 еще не сделал, только планирую. Точнее есть автоматический просмотр загруженных данных, но это слегка не то.

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

abalakin ★★
() автор топика
Ответ на: комментарий от anonymous

> (простые вещи должны делаться МГНОВЕННО, без почти).

Решение: заменить в программе mglGraphZB на mglGraphPS.

abalakin ★★
() автор топика
Ответ на: комментарий от naryl

> И у Qt?

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

anonymous
()
Ответ на: комментарий от abalakin

прогресс на лицо, с чем поздравляю. некоторые вещи из 3D хотелось бы
увидеть в ROOTe (хотя, возможно все это уже есть).
Сожалею, что сотрудничество не состоялось.
Нет смысла сравнивать ROOT vs MathGL (и пр. графопостроителями),
потому что ROOT - это framework.
На пример, на своей новой работе, 2D graphics даже не использую,
но использую 3D, в котором заметился занчительный прогресс с упором на
медицину, типа :
http://root.cern.ch/phpBB2/viewtopic.php?t=5648&postdays=0&postorder=...
а также image processing (все это удобнее, продвинутей, чем ITK/VTK)
Одна из интересных задач (над чем работаю) - обработка video:
- читаю поток с USB camera
- модифицирую его
- отображаю в ROOT frame
- можно все это спасать в AVI file
- можно пресылать по сети другому клиенту
О каком сравнении с PAW, MathGL etc. может идти речь?



Valeriy_Onuchin ★★
()
Ответ на: комментарий от Valeriy_Onuchin

О классно. Облачные графики в ROOT тоже появились :). Видимо моя идея о графике на просвет была совсем не плохая :).

Насчет сотрудничества... как-то затихло оно... наверное действительно жаль. С другой стороны MathGL -- ядро для рисования, а ROOT уже имеет свое ядро. И надо было либо сливаться, либо менять ядро у ROOT (про третью возможность молчу :) ). Валерий, как предложение?

abalakin ★★
() автор топика
Ответ на: комментарий от JackYF

Не коси под придурка, у тебя слишком естественно получается.

Понятно что речь идёт о библиотеках со сложной функциональностью, таких, где unix way является не просто лучшим, а вообще единственным приемлимым решением.

anonymous
()
Ответ на: комментарий от abalakin

> Валерий, как предложение?
Алексей, я проконтактирую с коллегами (поговорим по e-mailу).

Valeriy_Onuchin ★★
()
Ответ на: комментарий от proDOOMman

>А где можно найти ебилды для сей замечательной программы?

>Кто знает оверлей?

Gentoo не использует glibc?! Лол.

JackYF ★★★★
()
Ответ на: комментарий от anonymous

>> Но, IMHO, лучше посмотреть в сторону http://root.cern.ch

>IMHO, лучше не смотреть. Качество отрисовки (без приложения сверхчеловеческих усилий) у PAW на порядок выше. Без лишней полировки почти сразу результат работы PAW можно публиковать хоть в самом понтовом журнале, а вот то, что ROOT нагенерит, надо долго и уныло подтачивать

Всё-таки для скриптов ROOT лучше таки PAW хоть это и печально. Довести eps там до приличного вида вполне возможно. Поэтому ROOT сейчас мэйнстрим, а PAW к сожалению уже нет. Для статобработки лучше R.

Evgueni ★★★★★
()
Ответ на: комментарий от anonymous

>> PAW/ROOT - это операции надо гистограмами и "нтаплами", а gnuplot - это рисовалка двумерных графиков.

>Двумерные графики PAW рисует очень неплохо. Лучше чем gnuplot. Например, даже эвристики рисования подписей к осям, и те у PAW значительно развитее чем у gnuplot. Я неоднократно нарывался на ситуацию, когда в логарифмической шкале гнуплот рисовал две (!) риски на оси, с очень некруглыми числами. Пользы от такой картинки, естественно, вообще никакой. PAW себе на тех же данных (и на любых других) такого не позволял никогда.

gnuplot - это программка для рисования огромного количества стандартных графиков из скриптов по текстовым данным. PAW - это программка для отрисовки одного сложного графика данные для которого извлечны из ntuplа и для подгонка оного. Совершенно разные ниши.

Evgueni ★★★★★
()
Ответ на: комментарий от JackYF

>>А где можно найти ебилды для сей замечательной программы?

>>Кто знает оверлей?

>Gentoo не использует glibc?! Лол.

Блин. Я имел в виду UDAV !

proDOOMman ★★
()
Ответ на: комментарий от proDOOMman

>>>А где можно найти ебилды для сей замечательной программы?

>>>Кто знает оверлей?

>>Gentoo не использует glibc?! Лол.

>Блин. Я имел в виду UDAV !

А, ну тогда извини.

JackYF ★★★★
()
Ответ на: комментарий от proDOOMman

>>>А где можно найти ебилды для сей замечательной программы?

>>>Кто знает оверлей?

>>Gentoo не использует glibc?! Лол.

>Блин. Я имел в виду UDAV !

Deb пакеты должны быть по ссылке вскоре. RPM чуть погодя.

abalakin ★★
() автор топика

а поддерживает ли гегс редактор встроеный в MC правку файлов >4Gb ?)

anonymous
()

При сборке на Debian Etch выдаёт следующую ошибку:

scriptwindow.cpp:117: error: ‘class QTextEdit’ has no member named ‘print’

В чём может быть причина? Версия QT4 не та?

Спасибо.

garry
()
Ответ на: комментарий от garry

> scriptwindow.cpp:117: error: ‘class QTextEdit’ has no member named ‘print’

> В чём может быть причина? Версия QT4 не та?

Лично я использовал для сборки Qt4.4. В документации по QTextEdit::print() требуют версию не ниже 4.3. Кстати, deb пакеты уже должны быть доступны по ссылке на странице загрузки.

abalakin ★★
() автор топика

По работе требуется написать приложение на базе wxWidgets с кучкой графиков. Встал вопрос о выборе библиотеки. Заказчик требует соблюдение лицензионной чистоты и не планирует открывать исходники программы.. Допускает ли лицензия (GPL ?) использование данной библиотеки (линковка dll, без изменений в коде библиотеки) для отрисовки графиков в закрытых коммерческих проектах? Планируется ли смена лицензии (например на LGPL)? Какие подходящие библиотеки можете посоветовать?

anonymous
()
Ответ на: комментарий от anonymous

GPL допускает использование библиотеки в закрытой программе, если эта программа не будет распространяться. Если программа будет продаваться или даже выложена для скачки - исходники нужн открыть. Динамическую линковку разрешает лицензия LGPL. Про смену лицензии лучше спросить у разработчиков.

Посоветовать можно разве что gnuplot, которая является не библиотекой, а программой с cli интерфейсом. Её можно использовать как внешнюю утилиту. Открываем int plotter = popen("gnuplot", "w") и пишем команды.

naryl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.