Преобразование многоугольника в данные пути онлайн урок.


Мне пришлось сделать это несколько раз недавно, поэтому я решил сохранить метод. У StackOverflow есть метод, который отлично работает:

[].forEach.call(polys,convertPolyToPath);

function convertPolyToPath(poly){
var svgNS = poly.ownerSVGElement.namespaceURI;
var path = document.createElementNS(svgNS,'path');
var points = poly.getAttribute('points').split(/\s+|,/);
var x0=points.shift(), y0=points.shift();
var pathdata = 'M'+x0+','+y0+'L'+points.join(' ');
if (poly.tagName=='polygon') pathdata+='z';
path.setAttribute('id',poly.getAttribute('id'));
path.setAttribute('fill',poly.getAttribute('fill'));
path.setAttribute('stroke',poly.getAttribute('stroke'));
path.setAttribute('d',pathdata);

poly.parentNode.replaceChild(path,poly);
}

Майкл Шофилд сделал перо, чтобы сделать это быстро:

См. Pen Преобразование SVG Polygon в Path Майкла Шофилда ( @michaelschofield ) на CodePen .

Вы помещаете свой собственный многоугольник в SVG выше, а затем его заменяет путь в DOM. Вы можете проверить DevTools, чтобы получить данные о пути.

Цель заключается, например, в том, что вы пытаетесь анимировать фигуру с прямыми линиями в форме с изогнутыми линиями. Программные средства SVG выдадут первый как многоугольник, который представляет собой другой тип данных, который не может анимировать корневой путь к синтаксису пути.