2013-03-05 80 views
0

我做的SVG編輯的修改,更具體馬克McKays方法來繪製:https://github.com/duopixel/Method-Draw整合Poilu拉斐爾布爾運算(工會,減法)與SVG編輯

我想用這個拉斐爾圖書館,我發現:https://github.com/poilu/raphael-boolean,讓我到我的畫布內執行布爾臺(套)的操作上的路徑。

現在我已經實現了一個觸發了一個函數在編輯器中的按鈕:

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紙張=聖拉斐爾( 「畫布」,250,250)改變;因爲svg-edit使用了不同的畫布名稱,但我不知道如何去做。

任何幫助將十分讚賞,因爲我一直在掙扎了一段時間與此有關。

UPDATE:該庫是無法處理多目標焊接,自相交和許多其他案件。它只在我們想要對2個簡單對象執行操作時才起作用。這可能不會立即與手頭的問題相關,但我認爲無論如何都要提到它是明智的。

參考這個問題,如果你正在尋找布爾運算對SVG元素:Boolean Operations on SVG paths

回答

1

你的代碼隔離發佈的作品,如下所示:http://jsfiddle.net/5SaR3/

你應該能夠改變拉斐爾構造行類似於:

var paper = Raphael(canvas); 

其中canvas是svg-edit使用的SVG元素的對象引用。