将Poilu-raphael布尔运算(并集、减法)与SVG编辑集成

将Poilu-raphael布尔运算(并集、减法)与SVG编辑集成,svg,raphael,jquery-svg,librsvg,svg-edit,Svg,Raphael,Jquery Svg,Librsvg,Svg Edit,我正在修改svg编辑,更具体地说是Mark McKays方法draw: 我想使用我找到的Raphael库:它允许我在画布内的路径上执行布尔(set)操作 现在,我在编辑器中实现了一个按钮,用于启动一个函数: var paper = Raphael("canvas", 250, 250); var path = paper.path("M 43,53 183,85 C 194,113 179,136 167,161 122,159 98,195 70,188 z"); path.a

我正在修改svg编辑,更具体地说是Mark McKays方法draw:

我想使用我找到的Raphael库:它允许我在画布内的路径上执行布尔(set)操作

现在,我在编辑器中实现了一个按钮,用于启动一个函数:

 var paper = Raphael("canvas", 250, 250);

var path = paper.path("M 43,53 183,85 C 194,113 179,136 167,161 122,159 98,195 70,188       z");
path.attr({fill: "#a00", stroke: "none"});

var ellipse = paper.ellipse(170, 160, 40, 35);
ellipse.attr({fill: "#0a0", stroke: "none"});


var newPathStr = paper.union(path, ellipse);

//draw a new path element using that string
var newPath = paper.path(newPathStr);
newPath.attr({fill: "#666"});

// as they aren't needed anymore remove the other elements
path.remove();
ellipse.remove();
好的,当点击按钮时,编辑器不是应该返回一个带有椭圆的联合(焊接)路径吗

还是我弄错了

我在想,var paper=Raphael(“画布”,250250)一定会有所改变;行,因为svg编辑为画布使用了不同的名称,但我不知道如何操作

任何帮助都将被深深感谢,因为我已经为此奋斗了一段时间

更新:此库无法处理多对象焊接、自相交和许多其他情况。只有当我们想对2个简单对象执行操作时,它才起作用。这可能与手头的问题没有直接关系,但我认为无论如何提及这一点是明智的


如果您正在寻找SVG元素上的布尔操作,请参考此问题:

您发布的代码是独立工作的,如下所示:

您应该能够将Raphael构造函数行更改为:

var paper = Raphael(canvas);
其中canvas是对SVG edit使用的SVG元素的对象引用