Версия для печати
Модули для рисования математических формул
http://www.delphikingdom.com/asp/viewitem.asp?catalogID=718Антон Григорьев
дата публикации 27-11-2002 17:31Модули для рисования математических формул Модули ExprDraw и ExprMake служат для рисования математических формул.
Модуль ExprDraw содержит классы, использующиеся для отображения формул. Эти классы описаны в файле ExprDraw.txt.
Создание и установление взаимосвязей между классами, описанными в модуле ExprDraw, для отображения конкретной формулы - занятие трудоёмкое, поэтому для его автоматизации создан модуль ExprMake, который создаёт классы на основании символьной записи формулы. Описание модуля находится в файле ExprMake.txt.Описание языка, на котором описываются формулы, вынесено в программу ExprGuide, которая содержится в архиве как в откомпилированном варианте, так и в виде исходных кодов. В левой части окна программы находится список всех конструкций языка. При выборе одного из элементов списка в правой части окна отображается описание и пример использования данной конструкции. Кнопка "Печать" позволяет вывести на принтер описание всех конструкций языка с примерами.
Модули ExprDraw и ExprMake поставляются "as is", в том виде, в каком я сам их использую. Первоначально я разрабатывал их исключительно для личного пользования, но потом решил поделиться. Возможности модулей позволяют отображать очень большой спектр формул. В математическом справочнике Бронштейна и Семендяева мне не удалось найти ни одной формулы, которая была бы модулям "не по зубам". Такие формулы есть в некоторых томах "Курса теоретической физики" Ландау и Лифшица, но это связано исключительно с использованием авторами "Курса..." готических и прочих непонятных букв, все остальные конструкции (включая постоянную Планка и лямбду с чертой) модули отображают без проблем. С одним замечанием: моё личное предпочтение - использование для обозначения векторов стрелки над символом, а не жирного шрифта, поэтому модули поддерживают именно стрелку. Текст модулей практически не содержит комментариев, все комментарии вынесены в файлы ExprDraw.txt и ExprMake.txt. Эти комментарии далеки от полноты, поэтому тем, кто захочет не только использовать готовую библиотеку, но и изменить что-то в ней, придётся серьёзно поработать, чтобы разобраться в коде.
Модули написаны на Delphi 5, испытаны в Windows 95 OSR 2.1, Windows NT 4.0 SP6 Workstation, Windows 2000 Advanced Server. По идее, ничего не мешает использовать эти модули и в других версиях Delphi, так как они поставляются в исходных кодах. Никакой специальной установки модулей не нужно, просто поместите файлы ExprDraw.pas и ExprMake.pas в один из тех каталогов, в которых Delphi ищет библиотеки, и добавьте ExprDraw и ExprMake в раздел uses своего модуля.
Просьба всем тем, кто будет использовать модули в своих программах, найти в About Box'е или ещё где-нибудь место для фразы типа "Для отображения математических формул используются модули ExprDraw и ExprMake, разработанные Григорьевым Антоном, e-mail."
По этому же адресу можно высылать мне замечания, информацию об ошибках в модулях и предложениях.Скачать библиотеку: Expr.Zip (278 K)
Убедительная просьба НЕ ПОСЫЛАТЬ мне писем следующих типов:
дата обновления 04.12.02 — решена проблема работы модулей под Windows 98/MEС пожеланиями успешной работы
- "Что такое каталог, где Delphi ищет библиотеки?" Ответ на такой этот вопрос можно найти в справочной системе Delphi или в любой книге про Delphi для начинающих.
- "Для чего нужна функция XXXX в классе TExprXXXX?" "Как работает функция XXXX?" и т.п. Все комментарии, которые я считал нужным дать, находятся в файлах Expr*.txt. В остальном разберитесь сами с помощью исходных текстов.
- "Мне нравятся ваши модули, но не хватает таких-то функций и/или классов: ... Не могли бы вы помочь мне их разработать?" Не мог бы. Вы и так на халяву получили сложную библиотеку, на которую у меня ушло очень много времени. Сделайте хоть что-то сами. Или давайте обсудим стоимость доработки модулей под ваши нужды.
- "Я начинающий программист, помогите мне, пожалуйста, сделать то-то и то-то..." Для таких вопросов существуют интернет-конференции. Например, "Круглый стол" в "Королевстве Delphi", который я регулярно просматриваю и отвечаю на все вопросы, на которые смогу. Пишите туда, а не в мой ящик.
Григорьев Антон,
Черноголовка, 27.11.02
Специально для Королевства Delphi