SVG 路径字符串上的布尔运算

Rya*_*red 5 javascript svg vector-graphics raphael computational-geometry

我遇到了一个概念上的难题。

总之,我需要找到通过不同布尔运算组合的两个向量路径的向量路径。如并、差、交和减。如果我能像 Canvas 的 globalCompositeOperation 那样做,那就太好了。

我到底要怎么做呢?

Nik*_*des 3

有一个 JavaScript 库,允许在路径是多边形的情况下对 SVG 路径进行布尔运算。使用足够高的采样,可以将贝塞尔曲线多边形化到如此高的质量,使得视觉结果几乎与真实曲线相同。

该库称为JavaScript Clipper ,它是Angus Johnson 的 Clipper (用 Delphi、C++、C# 和 Python 编写)的端口,而后者又基于Bala R. Vatti 的裁剪算法。它能够处理所有多边形情况,包括自相交的情况。该库具有许多额外的功能,包括所有布尔运算和用于减少节点数量的节点减轻算法。