Подтвердить что ты не робот

Компонент или библиотека Delphi для отображения математических выражений

Я ищу простой компонент, который отображает математические выражения в Delphi. Когда я начал, я подумал, что легко найти что-то в сети, но оказалось, что это было труднее, чем ожидалось. Есть много и много компонентов, которые будут анализировать математические выражения, но мало (нет?), Которые будут отображать их.

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

Update:

Я не говорю о графике графиков функций или что-то в этом роде. Я хочу отобразить (например)

(Х ^ 2 + 3)/X

вот так:

enter image description here

Решение:

MBo ответ был именно тем, что я искал. Некоторые люди могут быть отстранены от того, что все комментарии и документация написаны на русском языке, но не позволяйте этому напугать вас. Это было очень просто.

Установка. Разархивируйте файлы (по крайней мере, "ExprMake.pas" и "ExprDraw.pas" ) в каталог в вашем пути к библиотеке. Что это.

Использование: я не много экспериментировал с ним, но эти несколько строк демонстрируют, насколько это просто.

procedure TForm1.Button1Click(Sender: TObject);
var
  vExprC : TExprClass;
  vExprB : TExprBuilder;
begin
  vExprB := TExprBuilder.Create;
  try
    vExprC := vExprB.BuildExpr('(X^2+3)/X');
    vExprC.Canvas := Canvas;
    vExprC.Font.Size := 50;
    vExprC.Draw(10,10,ehLeft,evTop);
  finally
    vExprC.Free;
    vExprB.Free;
  end;
end;
4b9b3361

Ответ 1

Нативный модуль Delphi Антона Григорьева для рисования математических выражений. Ассистент программы - на русском языке. Вот как он выглядит.

Дополнение о кредитах: Модули бесплатны. Автор просит только упомянуть (AboutBox и т.д.), Что математические выражения были сделаны с помощью модулей ExprDraw и ExprMake, написанных Антоном Григорьевым (необработанный перевод из readme.txt)

Ответ 2

Я не знаю о встроенной реализации Delphi, но, возможно, этот вопрос вам полезен: Как визуализировать формулу в WPF или WinForms. В нем упоминаются некоторые решения C/С#, которые могут быть переведены или использованы как DLL (см. Решение OP).

Другой альтернативой может быть Formulator ActiveX Control.

Кроме того, он может расширить результаты поиска, если вы используете другие критерии поиска, особенно без ключевого слова "Delphi".;-)

renderer, formula, math, MathML, expression, engine, tex, ...

И как мы можем узнать из MBo answer, также может быть хорошей идеей искать на других языках: -)

delphi математических формул рисования 

Я уверен, что вы искали что-то подобное, но, возможно, есть одно ключевое слово, которое вы забыли.

Ответ 3

Я искал аналогичный компонент в течение некоторого времени, и решение MBo было бы приемлемым.

Я был убежден, что это можно сделать и по-другому: встраивание TWebBrowser и использование exixting javascript-рендеринга для формул LaTex и MathML, но...

Я просто попробовал QDSEquations, и я думаю, что это даже лучшее решение!

"Редактор уравнений компонента Delphi, который позволяет вводить и отображать математические формулы любой сложности, от простых греческих символов до матриц и сложных интегральных выражений. Вы можете использовать уравнение редактора в ваших проектах, написанных в среде Delphi, для например, в программах, проверяющих знание разных полей математики (математический анализ, дискретная математика, теория вероятностей и так далее), физика и др.

Его довольно легко ввести в него формулы:

  • простые символы вводятся аналогично вводу данных в текстовое поле
  • специальные символы и элементы формулы вводятся с помощью дополнительного меню"

Это лучше, потому что вы можете редактировать формулу непосредственно в компоненте "textfield" с помощью дополнительного компонента кнопочного меню и/или с помощью строки выражения математики и/или с использованием предопределенных методов.

Надеюсь, что это помогло!

Ответ 4

У меня была такая же проблема несколько месяцев назад, я решил ее, получив DLT-рендеринг LaTeX, который можно было бы вызвать из Delphi. Затем вы просто вызвали его, указав ему выражение как строку, и он вернул вам растровое изображение с выраженным выражением в нем.

Я забыл имя, к сожалению:( но вы должны найти его снова, ища "latex dll delphi"?