Я делаю модификацию 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