Метод clone()
- ваш друг, если вы хотите скопировать фигуры.Вы можете прочитать документы на svgjs.com, чтобы узнать больше.
Для слияния: Нет, это невозможно с svg.js, хотя в общем и не невозможно.Просто никто не просил эту функцию до сих пор, или у кого не было времени, чтобы задействовать свой мозг для ее решения.Существует вероятность того, что это будет учтено, когда вы откроете новый выпуск и запросите эту функцию.Однако в вашей идее есть одна проблема:
// a line
canvas.line(0, 0, 200, 0)
<line x1="0" y1="0" x2="200", y2="0">
// an arc
canvas.path('M 200 0 A 100 100 0 0 200 200')
<path d="M 200 0 A 100 100 0 0 200 200">
// resulting path
canvas.path('M0 0 200 0 A 100 100 0 0 200 200')
<path d="M0 0 200 0 A 100 100 0 0 200 200">
// rotating the path
canvas.path('M0 0 200 0 A 100 100 0 0 200 200').rotate(90, 200, 200)
<path d="M0 0 200 0 A 100 100 0 0 200 200" transform="matrix(....)">
Как видите, поворот вашего пути не меняет значения d-attr.Вращение - это преобразование, которое выполняется с помощью атрибута transform
.Таким образом, вы не можете легко объединить эти 2 пути вместе.Вместо этого сначала нужно избавиться от преобразования и применить его к каждой точке напрямую.Тогда вы можете слить.Это снова возможно, но, возможно, это не то, что кто-то уже реализовал.Было бы здорово сделать плагин, хотя ...