Страница 1 из 2

LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 20.04.2019 11:35:14
Dakor
Модули являются портом для Lazarus модулей ExprDraw и ExprMake для отрисовки математических формул на TCanvas, написанных Антоном Григорьевым на Delphi 5 и опубликованных в 2002 году.
В оригинале использовались функции GDI/Windows API и проприетарный шрифт Times New Roman, что исключало/затрудняло использование кода в Linux. Здесь же используются стандартные возможности TCanvas и шрифта XITS, распространяемого по свободной лицензии SIL Open Font License https://opensource.org/licenses/OFL-1.1.
Шрифты XITS доступны на github: https://github.com/alif-type/xits. Если нужны только стандартные функции модулей и не требуется особого форматирования текста, то необходимы только два файла с начертаниями Regular и Italic.

Учитывая пожелания автора оригинального кода, модули LazExprDraw и LazExprMake предлагаются по свободной лицензии MIT https://opensource.org/licenses/MIT

Модуль LazExprDraw содержит классы, использующиеся для отображения математических формул.
Модуль LazExprMake используется для создания классов на основании символьной записи формулы.
Архив с модулями: https://yadi.sk/d/j8emISVJvTaLgw
Описание модулей: https://yadi.sk/i/AgQUSjcHJ1WDug
Справочник по языку описания формул в виде программы (она же демо)
исходники: https://yadi.sk/d/F8EMuVYFoD7xYA
бинарник windows (x86_64): https://yadi.sk/d/wys1Tj2I5K3F6g
бинарник linux (amd64): https://yadi.sk/d/DCvXrl8uomjJAw

PS. Не забудьте установить шрифт XITS! :-)

P.P.S. Проект на гитхаб: https://github.com/DmitriyKornilov/LazExprDraw

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 20.04.2019 12:44:53
zub
Спасибо. Когда то давно интересовался модулем, но до дела так и не дошло.
Это просто порт или планируется развитие? В любом случае лучше выложить например на гитхабе

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 20.04.2019 13:54:28
Dakor
Я не профессиональный программист, просто хобби. Раньше использовал delphi, но для различных программок для облегчения жизни на работе нужно было что-то свободное, поэтому перешел на fpc/lazarus. А так на домашних компах перешел на Linux, в то время как на работе все на windows, выбор оказался как нельзя кстати.

В студенческие годы применял ExprDraw для разных поделок типа справочников и программ-тестов. Решил попробовать перевести это хозяйство под lazarus.

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

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

Ну и добавлены некоторые возможности, которых мне не хватало в оригинале (например, реализация системы выражений не только с фигурной скобкой, но и с квадратной, или выражений типа предела, но с другими именами, помимо Lim).

Над дальнейшим развитием не думал. Для меня возможностей хватает. Если только кто идей накидает :-D и время будет свободное.

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

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 20.04.2019 21:36:27
zoltanleo
Dakor писал(а):На githab выложу, но когда освою git. Системы контроля версий раньше не использовал, поскольку в крупных проектах не участвовал. Сейчас по мере возможности изучаю.

Там изучать нечего. Принципы одинаковы для всех svn.

За проделанную работу спасибо. Мало ли, где пригодится.

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 04:22:05
Vadim
(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 11:28:53
Dakor
Vadim писал(а):За компонент спасибо.
У них там закидывание файлов какое-то время назад сильно упростилось и стало похоже на работу с обычным файловым менеджером. Если неохота заморачиваться с командами svn, то можно открыть github в браузере, ткнуть на кнопочку "Upload files" перетащить в окошко браузера файл или каталог с файлом. А потом нажать кнопочку "Commit change". Естественно, делать это можно не где попало, а в окошке своего проекта на github... :-)

Господа, это неспортивно! :D
Ссылка на github добавлена в первое сообщение темы

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 12:33:02
zoltanleo
Dakor писал(а):Ссылка на github добавлена в первое сообщение темы

Ридми желательно писать на английском в качестве основного языка, если хочешь, чтобы твоей работой пользовались все. Использовать только НЕанглийский - моветон

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 13:34:25
Dakor
Имеешь ввиду, что надо поменять местами: английский вверх, а русский вниз? Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны. Или принципиально важно, чтобы английский выше был?

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 14:07:34
Vadim
(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 14:17:04
zoltanleo
Dakor писал(а):Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны.

прошу прощения, смотрел со смарта, видимо, не заметил

Vadim писал(а):До сих пор уверены, что Вы правы?

"Девочки, не ссорьтесь!" ©

Уважайте себя и друг друга. Берите пример с зарубежных коллег.

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 15:55:04
Dakor
zoltanleo писал(а):прошу прощения, смотрел со смарта, видимо, не заметил

тем не менее, английский вариант поднял наверх, спасибо за совет

Добавлено спустя 18 минут 29 секунд:
Vadim писал(а):(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)

(Сообщение удалено автором в связи с неадекватной реакцией собеседника)

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 16:43:08
Лекс Айрин
Dakor, тебе шашечки или ехать? На самом деле нет особой необходимости изучать команды SVN. Уже есть проги типа Черепахи, которые сильно облегчают работу, да и в командной строке обычно используется команд 5-6. Все остальное скорее для координаторов крупных проектов.

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 17:55:34
Dakor
С шашечками ехать :)

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 19:36:24
Лекс Айрин
Dakor, тогда ты выбрал не тот язык программирования. Попробуй ассемблер.

Re: LazExprDraw: порт модулей ExprDraw для Windows и Linux

СообщениеДобавлено: 21.04.2019 20:31:21
zoltanleo
Плз, не разводите флуд, пожалейте остальных читателей