2013-03-05 9 views
0

Я делаю модификацию svg-edit, а точнее, Mark McKays Метод draw: https://github.com/duopixel/Method-Draw.Интеграция операций Poilu raphael boolean (объединение, вычитание) с SVG-edit

Я хочу использовать эту библиотеку Raphael, которую я нашел: 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(); 

Okay, при нажатии кнопки разве редактор предполагается вернуть unioned (сварной) путь с эллипсом?

или я получаю это неправильно?

Я полагаю, что что-то должно измениться с помощью бумаги var = Raphael («холст», 250, 250); поскольку svg-edit использует другое имя для холста, но я понятия не имею, как это сделать.

Любая помощь будет глубоко оценена, поскольку я когда-либо боролся с этим.

UPDATE: эта библиотека не может обрабатывать многообъектную сварку, самопересечение и многие другие случаи. Он работает только в том случае, если мы хотим выполнить операции над двумя простыми объектами. Возможно, это не сразу отразится на рассматриваемом вопросе, но я подумал, что было бы разумно упомянуть об этом.

Обратитесь к этому вопросу, если вы ищете булевы операции на SVG элементах: Boolean Operations on SVG paths

ответ

1

код, который вы размещены работы в изоляции, как показано здесь: http://jsfiddle.net/5SaR3/

Вы должны быть в состоянии изменить конструктор Рафаэля строка к чему-то вроде:

var paper = Raphael(canvas); 

где canvas является ссылкой на объект SVG, используемый svg-edit.