У меня есть давний проект: базовый векторный графический инструмент, который работает в браузере и использует SVG и Javascript (возможно, вы видели кое-что из них в другом месте). Инструмент имеет только очень ограниченный набор функций, потому что аудитория ограничена, и цель очень конкретна, и на самом деле не разрешено быть другой функциональностью, чем то, что явно разрешено (вы знаете). Одна пропущенная функция - это размывание (также называемое вставкой или тонким) и расширяющие (выпуклые, утолщенные, полужирные) полигоны и другие графические элементы.
Я много раз использовал эффект смещения Adobe Illustrator, и с ним я могу легко создавать копии графических объектов, которые разбавлены или утолщены, не затрагивая оригинальный объект, поэтому он может быть почти любым, что поддерживается программой.
Я попытался использовать те же функции для работы в SVG, но без успеха.
Я пробовал следующее:
- расширять и стирать фильтры, но с неудовлетворительными результатами (см. изображение здесь)
- Библиотека Python Shapely на стороне сервера, но это обходное решение слишком медленное и позволяет вставлять или выделять только основные полигоны (описание здесь)
- найти javascript-библиотеку/код/функцию, которая может изменить данные пути для графических элементов, но ничего не найдено для javascript
Итак, существует ли какой-либо осмысленный способ реализовать это как эффект смещения пути и как?