alexunder 4 26 декабря, 2021 Опубликовано 26 декабря, 2021 · Жалоба 8 hours ago, _pv said: в большинстве случаев опять же хватало графиков в отдельном окне, которое гнуплот сам рисует. Хорошая вещь. Вариант рендеринга данных в график с последующим сохранением в файл или в бинарное поле таблицы базы данных весьма привлекателен. В последнем случае приходилось использовать питон и (довольно тормознутый) matplolib. gnuplot, наверное, пошустрее. 8 hours ago, _pv said: и не без разницы ли притащить .dll и звать из неё функции plot("sin(x)"); или притащить .exe, открыть через popen и отправлять ему команды и читать обратно картинку через fwrite (gp, "plot sin(x)"); / fread? Разница все же есть: обычно компонент графика на форме/окне берет на себя функции отрисовки, обновления (не только данных, добавления точек, а, например, когда пользователь меняет толщину линии, тип точек и прочие параметры кривой) и т.п, тут же предлагается бинарную картинку сгенерированную gnuplot'ом отрисовывать самому. А если этих графиков несколько на форме, то в предложенном варианты будет слишком много доп. действий. 8 hours ago, _pv said: ещё как-то давно mathGL использовал, выглядит неплохо, особенно если что-нибудь сложнее одномерных графиков надо Спасибо, поизучаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gridinp 3 27 декабря, 2021 Опубликовано 27 декабря, 2021 (изменено) · Жалоба Для Qt есть очень хорошая вещь: Qt Widgets for Technical Applications, правда сложновата из-за скудной документации, но хороших примеров довольно много Изменено 27 декабря, 2021 пользователем gridinp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 27 декабря, 2021 Опубликовано 27 декабря, 2021 · Жалоба 26.12.2021 в 14:22, _pv сказал: gnuplot так встроен в octave. и не без разницы ли притащить .dll и звать из неё функции plot("sin(x)"); Так он именно встроен в octave, а не просто вызывается, как dll-модуль, из gnuplot. Обычно ситуация такова, что чужие dll, как правило, вообще не вызываются :). Причиной тому служит то, что чужой программный продукт обычно содержит некий свой "фундамент", тогда как в dll вынесены редко или периодически используемые функции. Однако такие "удаленные функции" для своей работы все равно требуют наличия этого фундамента, а зачастую и его "инициации". Исключение составляют dll-модули в составе библиотек, да и то процедура инициации чаще всего оказывается неизбежной. В целом же проблема сводится к тому, что чужие/внешние функции не являются отдельными "кубиками", которые можно легко присоединять к своей программе, а связаны между собой неразрывными связями. Например, я вызываю одну функция, не ведая, что она неавтономна. Тогда как она при своем выполнении вызывает, скажем, пару других функций из того же ушата :), а те, в свою очередь, вызовут еще какие-то функции, а те свои, и т.д. до цепной реакции. Конечно, может случиться и так, что рост этих "метастаз" где-то остановится, но чаще случается так, что "метастазы" дорастают до фундамента, а тот, "возбудившись", грузит в память оптом все функции, какие на нем произрастают. Из-за этого выходит, что для того, чтобы воспользоваться всего лишь одной единственной функцией из чужого продукта, приходится инсталлировать его целиком, а то и предварительно запускать его в виде параллельно работающего приложения. С течением времени программные продуты становятся всё жирнее, превращаясь в отдельную экосистему, из которой снаружи ничего полезного не выудишь. А межпрограммный интерфейс мало кто из них официально поддерживает, а если неофициально, то и не догадаешься как. Но даже, если такой интерфейс возможен, то его использование портит реноме своей программы, когда она столь откровенно паразитирует на чужом продукте, а тем более нелицензированном. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 27 декабря, 2021 Опубликовано 27 декабря, 2021 · Жалоба 1 hour ago, Xenia said: Так он именно встроен в octave, а не просто вызывается, как dll-модуль, из gnuplot. ... ничего не понял. вы вроде искали аналог plot() из матлаба для своей программы собираемой msvc? ну вот установите гнуплот, сделайте FILE * gp = _popen("gnuplot.exe","w"); fprintf(gp, "set terminal wxt noraise\n"); //чтобы окошко фокус не забирало при каждом обновлении графика. for (double t = 0; t <= 10; t+=0.1){ fprintf(gp, "plot sin(x-%G)\n", t); fflush(gp); Sleep(100); } оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 27 декабря, 2021 Опубликовано 27 декабря, 2021 · Жалоба 43 минуты назад, _pv сказал: вы вроде искали аналог plot() из матлаба для своей программы собираемой msvc? ну вот установите гнуплот, сделайте Если я поступлю, как вы советуете, то gnuplot нарисует график в своем собственном окне, а не в окне моей программы. Тогда как я бы хотела функцию plot() "приватизировать", чтобы она рисовала графики с моем окне (на моей канве). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 78 28 декабря, 2021 Опубликовано 28 декабря, 2021 · Жалоба 22 minutes ago, Xenia said: Если я поступлю, как вы советуете, то gnuplot нарисует график в своем собственном окне, а не в окне моей программы. Тогда как я бы хотела функцию plot() "приватизировать", чтобы она рисовала графики с моем окне (на моей канве). ну если только нарисовать картинку, а pan/zoom потом самому руками делать, то картинку у гнуплота можно забрать, а не чтобы он сам окошко рисовал и где угодно потом отрисовать. есть терминал qt widgetа, можно сказать куда именно ему рисовать в своей программе на Qt. есть svg/html терминалы, т.е. зравствуй electron и весь этот вот сопуствующий ужос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x68499 0 18 января, 2023 Опубликовано 18 января, 2023 · Жалоба Builder C++ вещь! щас RAD 10.4 юзаю. Великолепно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 19 января, 2023 Опубликовано 19 января, 2023 · Жалоба On 12/23/2021 at 9:31 PM, Xenia said: VS2013 - нормальная среда, не монстроидальная. Да и VS2015 еще терпимая. Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное. Но вопрос у меня другой - как под VS разные графики и диаграммы рисовать, которые на Bulder 6.0 делались в пол тычка мышкой? Т.е. всё, что под Билдером делает teechart? Или вы всё GUI на MFC пишите? Есть плагин Cּּ/CLR Windows Forms fur Visual Studio 2017. Позволяет добавлять GUI в С++ проект. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться