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

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

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

Сообщение 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
Последний раз редактировалось Dakor 21.04.2019 10:30:10, всего редактировалось 1 раз.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Спасибо. Когда то давно интересовался модулем, но до дела так и не дошло.
Это просто порт или планируется развитие? В любом случае лучше выложить например на гитхабе
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Сообщение Dakor »

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

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

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

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

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

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

На githab выложу, но когда освою git. Системы контроля версий раньше не использовал, поскольку в крупных проектах не участвовал. Сейчас по мере возможности изучаю.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

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

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

За проделанную работу спасибо. Мало ли, где пригодится.
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Последний раз редактировалось Vadim 21.04.2019 14:59:52, всего редактировалось 2 раза.
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Сообщение Dakor »

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

Господа, это неспортивно! :D
Ссылка на github добавлена в первое сообщение темы
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Dakor писал(а):Ссылка на github добавлена в первое сообщение темы

Ридми желательно писать на английском в качестве основного языка, если хочешь, чтобы твоей работой пользовались все. Использовать только НЕанглийский - моветон
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Сообщение Dakor »

Имеешь ввиду, что надо поменять местами: английский вверх, а русский вниз? Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны. Или принципиально важно, чтобы английский выше был?
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Сообщение Vadim »

(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Последний раз редактировалось Vadim 21.04.2019 15:00:17, всего редактировалось 1 раз.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Dakor писал(а):Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны.

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

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

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

Уважайте себя и друг друга. Берите пример с зарубежных коллег.
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Сообщение Dakor »

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

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

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

(Сообщение удалено автором в связи с неадекватной реакцией собеседника)
Последний раз редактировалось Dakor 21.04.2019 19:48:43, всего редактировалось 2 раза.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

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

Сообщение Dakor »

С шашечками ехать :)
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Dakor, тогда ты выбрал не тот язык программирования. Попробуй ассемблер.
Аватара пользователя
zoltanleo
постоялец
Сообщения: 459
Зарегистрирован: 17.10.2013 10:55:01

Сообщение zoltanleo »

Плз, не разводите флуд, пожалейте остальных читателей
Ответить