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

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

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

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

Сообщение Dakor » 20.04.2019 11:35:14

Модули являются портом для 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 11:30:10, всего редактировалось 1 раз.
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение zub » 20.04.2019 12:44:53

Спасибо. Когда то давно интересовался модулем, но до дела так и не дошло.
Это просто порт или планируется развитие? В любом случае лучше выложить например на гитхабе
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Dakor » 20.04.2019 13:54:28

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

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

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

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

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

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

На githab выложу, но когда освою git. Системы контроля версий раньше не использовал, поскольку в крупных проектах не участвовал. Сейчас по мере возможности изучаю.
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение zoltanleo » 20.04.2019 21:36:27

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

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

За проделанную работу спасибо. Мало ли, где пригодится.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

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

Сообщение Vadim » 21.04.2019 04:22:05

(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Последний раз редактировалось Vadim 21.04.2019 15:59:52, всего редактировалось 2 раз(а).
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение Dakor » 21.04.2019 11:28:53

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

Господа, это неспортивно! :D
Ссылка на github добавлена в первое сообщение темы
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение zoltanleo » 21.04.2019 12:33:02

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

Ридми желательно писать на английском в качестве основного языка, если хочешь, чтобы твоей работой пользовались все. Использовать только НЕанглийский - моветон
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

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

Сообщение Dakor » 21.04.2019 13:34:25

Имеешь ввиду, что надо поменять местами: английский вверх, а русский вниз? Так там оба варианта - и русский и английский - даже на смартфоне на одном экране видны. Или принципиально важно, чтобы английский выше был?
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение Vadim » 21.04.2019 14:07:34

(Сообщение удалено автором в связи с неадекватной реакцией топикстартера)
Последний раз редактировалось Vadim 21.04.2019 16:00:17, всего редактировалось 1 раз.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

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

Сообщение zoltanleo » 21.04.2019 14:17:04

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

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

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

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

Уважайте себя и друг друга. Берите пример с зарубежных коллег.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

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

Сообщение Dakor » 21.04.2019 15:55:04

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

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

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

(Сообщение удалено автором в связи с неадекватной реакцией собеседника)
Последний раз редактировалось Dakor 21.04.2019 20:48:43, всего редактировалось 2 раз(а).
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение Лекс Айрин » 21.04.2019 16:43:08

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

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

Сообщение Dakor » 21.04.2019 17:55:34

С шашечками ехать :)
Dakor
новенький
 
Сообщения: 16
Зарегистрирован: 15.04.2018 00:01:01

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

Сообщение Лекс Айрин » 21.04.2019 19:36:24

Dakor, тогда ты выбрал не тот язык программирования. Попробуй ассемблер.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение zoltanleo » 21.04.2019 20:31:21

Плз, не разводите флуд, пожалейте остальных читателей
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01

След.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

Рейтинг@Mail.ru