LINUX.ORG.RU

Вышла бета рисовалки графиков graph 0.10


0

0

Итак, выкладываю на ваш суд свою утилиту для рисования графиков функций, написанную для курсового проекта.

В связи с надвигающейся сессией, пришлось отложить релиз на пару недель, в принципе успел слегка подчистить код и выловить некоторые неприятные баги.

Программа умеет:

  • строить разноцветные графики любых 2д функций
  • поддерживает пять типов графиков
  • поддерживает экспорт картинки в PNG
  • мастшабирует и перемещает координатную плоскость
  • сохраняет и загружает функции в формате XML
Утилитка использует библиотеку MathGL Алексея Балакина, скачать ее можно здесь http://mathgl.sourceforge.net

О том как собрать программу читайте в README.

Скачать программу можно здесь https://sourceforge.net/project/showf...

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

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

>Более интересно, умеет ли программа рисовать функции, заданные не формулой, а массивом точек например.

пока нет, хотя это нетрудно реализовать.

>И как у не с функциями, определёнными не на всей оси координат? И что она выдаст на y=sin(1/x)?

я не помню, кажется там где y не существует, он ставится в 0

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

Делаю make и куча варнингов по типу

/usr/src/pack/graph-0.1b/src/add_function_dlg.cpp:73: warning: deprecated conversion from string constant to ‘gchar*’

а потом еще и ошибки

/usr/src/pack/graph-0.1b/src/add_function_dlg.cpp:229: error: ‘gtk_widget_set_tooltip_text’ was not declared in this scope

Dudraug ★★★★★
()

если вы не против, выкладываю сюда и свою графорисовалку, писал с той же целью, теперь сам использую,

умеет программа,
- рендерить 2д графики из аналитической и табличной формы в .bmp или таблицу
- осуществлять преобразование функций
- строить параметрические графики
- вычислять значения выражений
- есть препроцессор выражений (#include)

внешних зависимостей нет, документация встроенная, для примера в архиве выражение для переобразования Фурье.

положил куда нашел.
http://www.paravozeg.narod.ru/cgp-0.3.0.tar.gz

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

>а о неявном задании 2д-функции в виде F(x,y)=0 в школе не учили?))

"Пусть заданы два множества X и Y. Если каждому элементу x из X поставлен в соответсвие ОДИН И ТОЛЬКО ОДИН элемент y из Y, обозначаемый f(x) и если каждый элемент y из Y поставлен в соответсвие хотя бы одному элементу x из X, то это соответсвие называется функцией y = f(x), определенной на множестве X и с множеством значений Y" Л.Д. Кудрявцев Математический Анализ том1.

Учись быдло)

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

x^2+y^2=10

Это множество точек заданных уравнением.

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

> Л.Д. Кудрявцев Математический Анализ том1.

Это лишний повод выбрать другой учебник матанализа. Любят некоторые математики очевидные вещи усложнять.

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

В Википедии тоже самое написано. А этот учебник потрясающе хорош) 1973 года, в Советском Союзе к науке хорошо относились. И вообще это я слышал еще как минимум от трех преподавателей.

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

Учебник Кудрявцева -- наиболее толковый и грамотный по матану. Так что без наездов.

Кстати, забавные новости пошли на лоре: Вышла новая версия программы LabPlot, предназначенной для рисования графиков и анализа 2D и 3D функций и массивов данных. Главная новость этого релиза - полная поддержка проектов Origin 7.5.

Фактически сразу... сколько уже рисовалок-то всяких... нужных и не очень. Ну да бог с ними, через пару недель устрою конкурс среди них: какие смогут работать в условиях крос-платформенности:) Строить преимощественно 2д-графики и диаграммы. Может кто подскажет?

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

> Насколько я понимаю, Алексею некогда поддерживать оба проекта, было бы хорошо, если бы автор данного проекта продолжил его развивать или присоединился бы к существующему проекту Алексея.

Времени действительно не очень много в связи с отчетами. Да и написание и тестирование(!) фортрановского интерфейса (в 1.4.3) съело кучу времени. Новая версия будет к новому году (или скорее после). А помощь действительно не помешала бы :). Правда проекты разные: UDAV скорее скриптовый, Graph скорее графический.

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

>>>x^2 + y^2 = 10 >осилит? >Deady (*) (20.12.2007 0:22:54)

>>Млять, а это что не 2д-функция? В школу, быдло!

>Нет, это не функция. Функция определяет однозначно y в зависимости от x.

Не функция конечно, но линией постоянного уровня (=10) строится на раз. Наверное, автору стоит добавить (функция Cont() в MathGL).

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

> Да, прога велосипед. <<skip>> Но если человек не знает гнуплота, а ему срочно надо нарисовать красивый график (никто, думаю не оспорит, что это так) то mathGl + моя прога ему пригодится.

Полностью согласен! Вот в школах (и на первых курсах универа) такие программы ОЧЕНЬ нужны! Потому как умения работать с компьютером еще (или все еще) нет, а построить график к лабораторке, докладу, уроку и пр. надо. В свое время долго-долго искал такой аналог под win32 для знакомых учителей -- чтобы сесть и построить.

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

> Фактически сразу... сколько уже рисовалок-то всяких... нужных и не очень. Ну да бог с ними, через пару недель устрою конкурс среди них: какие смогут работать в условиях крос-платформенности:) Строить преимощественно 2д-графики и диаграммы. Может кто подскажет?

LabPlot не сможет. Да и графика у него ... мегко говоря так себе.

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

А фигли тогда было человека обсирать? если такой подборчивый?

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

>>Но если человек не знает гнуплота, а ему срочно надо нарисовать красивый график ...

Ради повышения скилла весьма полезно. Впрочем плагин к теху или гимпу был бы боле полезен как для юзера так и для скилла. Ибо читать чужой код значительно трудней чем писать свой. Дональд Кнут давно уже написал тех. Для оформления математических трудов лучше не видел. А если человек чегото не знает это еще не повод браться за перо и писать ему очередную программку.

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

>Так кто собирал? с проблемами что в моем посте выше не сталкивался?

какая версия gtk+?

если звезды не сойдутся, попробуй закомментировать вызов gtk_set_tooltip

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

>Ради повышения скилла весьма полезно. Впрочем плагин к теху или гимпу был бы боле полезен как для юзера так и для скилла. Ибо читать чужой код значительно трудней чем писать свой.

тут срабатывает мой комплекс маленькой пиписки -> я еще не настолько крут, чтобы вот так запросто завалиться в большой проект со своими патчами :(

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

не так давно я слегка "обидел" автора. зря.
все нормально, так держать! :o)

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

> Впрочем плагин к теху или гимпу был бы боле полезен как для юзера так и для скилла.

"Плагин к ТеХу и так есть -- сохранять можно в EPS и в PNG. А дальше вставлять в текст :).

Плагин для gimp я думаю не так уж и нужен -- задачи разные: научная графика и оформительская пересекаются мало.

> Дональд Кнут давно уже написал тех. Для оформления математических трудов лучше не видел.

Полностью согласен! Мне и ООо нравится из-за возможности набора формул в строке.

> А если человек чегото не знает это еще не повод браться за перо и писать ему очередную программку.

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

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

хм, может там еще нет set_tooltip_text. Попробуй закоментить эти вызовы, а мне пожалуй, надо увеличить минимальную версию в CMakeLists.txt

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

Учи LaTex. Он для формул и писался.

anonymous
()

У вас такой хороший сайт, то что мне нужно! Пишу опенсорц, фриваре, очень люблю Линукс. Скоро закончу универ, нужен опыт и рекомендации. Примите мою работу на рассмотрение тоже, ну пожалуйста. //Троль

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

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

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

Гляньте в сторону R - попробуйте туда Ваши графики прикрутить. Серия про R будет в Linux Format начиная с января.

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

> В Википедии тоже самое написано. А этот учебник потрясающе хорош) 1973 года, в Советском Союзе к науке хорошо относились. И вообще это я слышал еще как минимум от трех преподавателей.

В этом смысле я согласен, что выразился некорректно. Изменяю утверждение: для дела абсолютно не важно как задаётся множество точек на графике и ограничиваться формальным определением функции IMHO не верно.

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

> Э... Т.е. y=sqrt(x) уже не функция?

Формально не определена для отрицательных x и не имеет отрицательных значений. Но, IMHO, формальности часто жизнь сильно усложняют, хотя позволяют во многих случаях действовать на автомате без задействования мыслительного аппарата, что под час сильно экономит время.

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

>Формально не определена для отрицательных x и не имеет отрицательных значений. Но, IMHO, формальности часто жизнь сильно усложняют

Математика не может иметь плавающие значения формальности. По приведённому определению корень квадратный - не функция. Без всяких формальностей :)

KRoN73 ★★★★★
()

>Математика не может иметь плавающие значения формальности. По >приведённому определению корень квадратный - не функция. Без всяких >формальностей :)

Очнитесь, люди. Функция-это не только правило, но и множества. Для sqrt(x) можем взять X=[0, 1], допустим, Y=[0,2], и правило: y = sqrt(x). Да, можно расширять X и Y, главное, чтобы отображение грамотно работало.

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

>Э... Т.е. y=sqrt(x) уже не функция?

Функция мы берем множество X то есть область определения D. x>= 0; На всей области D отображение X в Y есть при чем единственное.

Вот еще пример мы щас на 2 курсе проходим Вычислительную Математику ( Раньше Численные методы) Уравнение F(x)=0 решается методом секущей, или методом простых итераций, для этих методов надо знать производную в точки. |y|=sqrt(x); Найдите производную в точке 2? =) и вообще в общем виде найдите. может вы и упростите до y=sqrt(x) Но! Это уже другое выражение, а эти методы применяются в выч. технике. Поэтому разграничение Функции и Множества - что первое это частный случай второго, далеко не лишнее.

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