Есть ли библиотека графиков C++, которая может отображать визуальные графики (например, гиперболы и параболы и линейные уравнения) на основе уравнения, которое оно задано, и это кросс-платформа? Или я просто прошу слишком много ...Есть ли библиотека графиков C++?
ответ
Возьмем ваш вопрос шаг за шагом.
"на основе уравнения [который] он задан" Это потребует от вас написать парсер выражений; C++ не может интерпретировать уравнения «на лету», не написав для этого процедуру. Для этого я рекомендую вам посмотреть Bison (перейдите прямо к примеру RPN calc, чтобы получить идею).
Для библиотек вы можете получить любой инструментарий GUI для C++; есть десятки; рекомендация по QT, вероятно, самая честная. Также проверьте Wikipedia. Вам нужно любой инструментарий, который обеспечит вам холст где вы можете окрасить или визуализации линии или шлицы. Это не тривиально, но и не сложно.
Ваша программа будет, вероятно, работать следующим образом:
- Получить математическое выражение (или параметры для известной функции; как оси и центр эллипса).
- Сформировать множество точек (это делается с помощью цикла в C++)
- пакета обновления этих точек и послал их в краска или визуализации метод вашего инструментария (с соответствующим масштабированием/нормализация
Опять же, это не тривиально, но не трудно либо.
Вы изобретать колесо, но я благодарю вас за это.
Ch EERS,
J.
Если все, что вы заинтересованы в том, конечный результат, а не на стороне программирования вещей; вы можете попробовать взаимодействовать с чем-то вроде gnuplot (http://www.gnuplot.info/).
Если вас интересует больше, я бы рекомендовал посмотреть их страницу «Ссылки». Это предлагает кучу библиотек интерфейсов и повторных реализаций (в основном для языков, отличных от C, из того, что я вижу).
Надеюсь, что это поможет.
MathGL имеет выражающий парсер и может использовать функцию, определенную текстовой формулой (с большим количеством специальной функции). Также вы можете создать набор данных, заполнить его формулой и построить косвенные функции (например, эллипс, a * x^2 + b * x^2 = 1).
+1: Ничего себе, никогда не находил этого раньше. Выглядит просто, и очень причудливый ': O' – rubenvb
Qt не имеет одного из своих. Тем не менее, есть библиотека с открытым исходным кодом на http://qwt.sourceforge.net/, которая является очень полной и простой в использовании. Для 3D-диаграмм посмотрите http://qwtplot3d.sourceforge.net/. –