Ich musste das in letzter Zeit ein paar Mal tun, also dachte ich, ich speichere die Methode. StackOverflow hat eine Methode, die hervorragend funktioniert
[].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);
}
Michael Schofield hat einen Pen erstellt, um es schnell zu erledigen
Siehe den Pen SVG Polygon in Pfad umwandeln von Michael Schofield (@michaelschofield) auf CodePen.
Sie fügen Ihr eigenes Polygon in das obige SVG ein und es wird dann durch einen Pfad im DOM ersetzt. Sie können die Pfad-Daten mit DevTools auslesen.
Der Zweck ist zum Beispiel, dass Sie von einer Form mit geraden Linien zu einer Form mit gekrümmten Linien animieren möchten. SVG-Software-Tools geben erstere als Polygon aus, was eine andere Art von Daten ist, die sich nicht nativ in die Pfadsyntax animieren lässt.