EDIT5: Наконец, появилась библиотека Angus Johnson Clipper, реализованная в Javascript, и выбранная Sourceforge для хоста.
LIVE DEMO: http://jsclipper.sourceforge.net/6.1.1.1/main_demo.html
Источник загрузки: https://sourceforge.net/projects/jsclipper/
Википедия с пошаговым руководством: https://sourceforge.net/p/jsclipper/wiki/Home%206/
Презентация демонстрационной программы, включающей десятки образцов полигонов: https://sourceforge.net/p/jsclipper/wiki/Main_Demo%206/
Я надеюсь, что это поможет любому, кому нужна библиотека обрезки полилинии и полигона со смещением функций.
EDIT4: Одна из возможностей - преобразовать pascal в javascript, используя
http://p2js.gelicon.biz/en/. Пока не удалось. p2js.exe clipper.pas
дает фатальную ошибку "Не удается найти систему единиц, используемую клипером".
EDIT: я нашел script # (Github), который, похоже, способен конвертировать С# в Javascript. Clipper lib доступен в С#, так что можно сделать С# → JS-преобразование с помощью Script # и как?
EDIT3: не преобразован с помощью Script #, но есть также Emscripten, но 4000 строк cpp, преобразованных в 300 000 строк Javascript, поэтому не вариант. Ручное преобразование кажется королем.
EDIT2: Я сделал пример, который показывает проблему. Используйте стрелку влево и вправо, чтобы применить смещение. На определенном расстоянии он работает нормально, но потом что-то идет не так. Желтый поглаженный многоугольник называется так называемым грубым смещенным полигоном, и AFAIK Clipper lib предоставляет способ позаботиться об удалении ненужных частей необработанного смещенного полигона.
Существует библиотека Clipper от Angus Johnson для компенсации полигонов.
Мне нужна эта функция в Javascript для смещения полигонов SVG.
Кто-нибудь сделал порт Javascript?
Если нет, я бы оценил некоторые рекомендации, например. следующее:
- насколько огромной была задача?
- какой из них выбрать для источника (Delphi, С#, С++)?
- все ли в lib необходимо для компенсации?
Библиотека Clipper дает следующие результаты, которые являются только требуемой функциональностью:
Некоторые ссылки:
- Файлы в Sourceforge
- Документация клипера
- Ответ на один столбец
- Смещение алгоритма