将SVG多边形点转换为路径?

dez*_*man 1 javascript svg raphael

我正在寻找一个可以转换如下内容的函数:

var points="270,328 270,376 342,376 342,368 358,368 358,320 314,320 298,336 278,336"
Run Code Online (Sandbox Code Playgroud)

进入路径的SVG格式,我看到了这个问题/答案,但是我得到一个错误:未捕获TypeError:无法读取未定义的属性'ownerSVGElement'.这是因为我将我的var点放入该函数中,这不是为此设计的,我认为它需要完整的xml或其他东西.

任何建议都很棒,尤其是强制插画师导出路径而不是多边形!

谢谢!

And*_*mes 7

var points="270,328 270,376 342,376 342,368 358,368 358,320 314,320 298,336 278,336"

var p = points.split(/\s+/);
var path = "";
for( var i = 0, len = p.length; i < len; i++ ){
    path += (i && "L" || "M") + p[i]
}

console.log( path )
=> M270,328L270,376L342,376L342,368L358,368L358,320L314,320L298,336L278,336 
Run Code Online (Sandbox Code Playgroud)

  • 更新了我的回答.此外,如果要关闭路径,则只应添加az. (3认同)
  • 谢谢,它有效。但这可能更具可读性。`路径 = 'M' + 点.replace(/\s+/g, 'L');` (2认同)