Ответ 1
Здесь Javascript Clipper, который позволяет всем наборам Логические операции по пути, но при условии, что входной путь является многоугольником.
-
Если у нас есть какие-либо кривые (кубические/квадратичные кривые Безье), их можно легко подразделить на многоугольники, используя алгоритм Де Кастеляу,
- Если образец подразделения достаточно высок, результатом будет полигон, который визуально выглядит как кривая (за счет большого количества данных, поскольку количество вершин увеличивается линейно, в зависимости от точности подразделения).
Затем мы можем проложить путь в Javascript Clipper для логических операций.
Опасность здесь заключается в том, что мы теряем присущую "соблазнительную" природу пути, если она содержит кривые. Выполнение упомянутой выше "полигонизации" является, более или менее, улицей с односторонним движением.