Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SVG路径字符串上的布尔操作_Javascript_Svg_Raphael_Computational Geometry_Vector Graphics - Fatal编程技术网

Javascript SVG路径字符串上的布尔操作

Javascript SVG路径字符串上的布尔操作,javascript,svg,raphael,computational-geometry,vector-graphics,Javascript,Svg,Raphael,Computational Geometry,Vector Graphics,我遇到了一个概念上的难题 简而言之,我需要找到通过不同的布尔运算组合的两条向量路径的向量路径。例如并集、差分、交集和减法。如果我能像Canvas的GlobalComposite操作一样来做,那就太好了 我到底该怎么做呢?与GlobalComposite操作等效的是SVG中的feComposite过滤器。这看起来与Opera中的类似。如果您需要创建由许多其他相交、联合等形状组成的新几何图形,您必须自己在脚本中处理,或者使用矢量图形编辑器(Inkscape和Illustrator都提供此功能)有一个

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

简而言之,我需要找到通过不同的布尔运算组合的两条向量路径的向量路径。例如并集、差分、交集和减法。如果我能像Canvas的GlobalComposite操作一样来做,那就太好了


我到底该怎么做呢?

与GlobalComposite操作等效的是SVG中的feComposite过滤器。这看起来与Opera中的类似。

如果您需要创建由许多其他相交、联合等形状组成的新几何图形,您必须自己在脚本中处理,或者使用矢量图形编辑器(Inkscape和Illustrator都提供此功能)有一个JavaScript库,允许在路径为多边形的情况下对SVG路径进行布尔操作。使用足够高的采样,贝塞尔曲线可以进行多边形化,以获得与真实曲线几乎相同的视觉效果


库,它是一个端口(用Delphi、C++、C和Python编写),它又是基于它能够处理所有多边形的情况,包括自相交的情况。该库有许多额外的函数,包括所有布尔运算和一个用于减少节点数的节点照明算法。

发布示例代码,这将非常有用!我一直在问[this][1],可能它对你有帮助[1]:不,它是一个仅渲染的选项。我使用过JSClipper,发现它不仅对布尔运算非常强大,而且对多段线和多边形的偏移也非常强大。该框架的其他版本可用于许多编程语言,例如C++、C语言、Delphi、Python、Perl、露比和Haskell。