Есть ли графическая библиотека C ++? - PullRequest
1 голос
/ 22 мая 2010

Существует ли библиотека графиков C ++, которая может отображать визуальные графики (такие как гиперболы и параболы и линейные уравнения) на основе заданного уравнения и является кроссплатформенным? Или я просто прошу слишком много ...

Ответы [ 4 ]

1 голос
/ 25 января 2011

MathGL имеет синтаксический анализатор выражений и может отображать функции, заданные текстовой формулой (с большим количеством специальных функций). Также вы можете создать набор данных, заполнить его формулой и построить косвенные функции (например, эллипс, a * x ^ 2 + b * x ^ 2 = 1).

1 голос
/ 22 мая 2010

Посмотрите на Qt . Это может иметь некоторые графические возможности. И есть gnuplot . Он очень обширный, поэтому он может быть слишком сложным для ваших нужд. Он кроссплатформенный и имеет C ++ API.

0 голосов
/ 22 мая 2010

Если все, что вас интересует, это конечный результат, а не сторона программирования; Возможно, вы захотите попробовать установить взаимодействие с чем-то вроде gnuplot (http://www.gnuplot.info/).

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

Надеюсь, это поможет.

0 голосов
/ 22 мая 2010

Давайте рассмотрим ваш вопрос шаг за шагом.

  1. "на основе уравнения [которое] ему дано" Для этого потребуется написать синтаксический анализатор выражений;C ++ не может интерпретировать уравнения «на лету» без написания для этого процедуры.Для этого я рекомендую вам взглянуть на Bison (перейдите прямо к примеру RPN calc, чтобы получить идею).

  2. Для библиотек вы можете получить любой графический интерфейсинструментарий для C ++;Есть десятки;Рекомендация для QT является, пожалуй, самой честной.Проверьте также Википедия .Вам нужен любой инструментарий, который предоставит вам canvas , где вы можете рисовать или визуализировать линий или сплайнов.Это не тривиально, но и не сложно.

Ваша программа, вероятно, будет работать следующим образом:

  1. Получить математическое выражение (или параметры для известногофункция; как оси и центр эллипса).
  2. Создание набора точек (это делается с помощью цикла в C ++)
  3. Упакуйте эти точки и отправьте их в рисовать или визуализировать метод вашего инструментария (с соответствующим масштабированием / нормализацией

Опять же, это не тривиально, но и не сложно.

Вызаново изобретаем колесо, но я рекомендую вас за это.

Приветствия,

J.

...