2013-12-16 3 views
0

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

  • Район для рисования функции.
  • Поддерживает сглаживание.
  • Полоса прокрутки для изменения других зависимых переменных (которая равна a в y = (x-a) * x).
  • Должно быть достаточно быстро (расчеты будут выполняться сотни раз).
  • Анализ математических выражений с использованием регулярных выражений (есть ли лучший способ?).

любые другие предложения были бы полезными.

редактировать: это может быть полезно во многих отношениях, таких как отбрасывание повторяющиеся вычисления

например: черчения у = 4 + 1 с использованием 1000 точек было 999 повторен расчет, производительность может быть повышена с использованием модели дерева, что пересчитывает узлы с измененными детьми

ответ

2

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

Если вы хотите, чтобы результат выглядел так, как будто он меняется непрерывно, а на самом деле я не рисую окно вывода. Скорее я рисую в растровое изображение памяти, которое затем передаю в видимое окно. Это устраняет все мигания и делает его быстрым, даже если оно только перекрашивается несколько раз в секунду.

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

Что касается «лучшего языка», это зависит от того, что вы пытаетесь сделать. Я сделал все это на C, C++ и C#. Я уверен, что Java или другие скомпилированные языки будут работать так же хорошо.

+0

Цифровая интеграция требует много времени. Я сделал это в JavaScript и обнаружил, что вычисления занимают больше, чем заговор – MIE

1

Я думаю, что для этого нет «лучшего языка», однако я могу дать вам несколько советов. Я думаю, что одним из способов было бы использовать C++ с библиотекой gnuplot. Другой способ - использовать C++ с Qt и qwt-библиотеками. Qt будет легко управлять регулярным выражением.

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

+0

Я хочу делать все сам, я имею в виду разбор выражения, получение точек, заговор, я думаю, что это будет быстрее, потому что я могу пропустить повторные вычисления. ** например: ** построение y = 4 + 1 с использованием 1000 точек имеет 999 повторных вычислений, которые могут быть отброшены. – MIE

+0

Тогда вы должны использовать C++ с Qt и qwt. – HAL9000

Смежные вопросы