Антон Григорьев дата публикации 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
[Синтаксический анализ, разбор выражений, парсинг] [Перерисовка компонент] [GDI, рисование на канве]
Обсуждение материала [ 11-03-2014 22:23 ] 80 сообщений |