Javascript Raphael/SVG路径定义是否总是以';M';?(如果不是,那么这条路径的原点是否总是0,0?)
我正在编写一些类似插件的代码,以简化将Raphael路径移动到固定位置的过程 通常,Raphael路径(使用基于SVG语法的语法)的第一部分是“M”moveto命令,用于定义路径的原点 两个密切相关的问题:Javascript Raphael/SVG路径定义是否总是以';M';?(如果不是,那么这条路径的原点是否总是0,0?),javascript,svg,raphael,Javascript,Svg,Raphael,我正在编写一些类似插件的代码,以简化将Raphael路径移动到固定位置的过程 通常,Raphael路径(使用基于SVG语法的语法)的第一部分是“M”moveto命令,用于定义路径的原点 两个密切相关的问题: 假设任何任意路径都以“M”moveto命令开头是否合理?(我怀疑答案是否定的) 假设Q1为“否”。上面,当遇到一个不以“M”开头的Raphael路径数组时(somePath.attr(path)[0][0]!=“M”),是否可以假定此路径的原点始终为0,0?因此,从0,0开始的任何移动都将来
somePath.attr(transform)
中描述李>
从Raphael文档来看,路径数组的规范中似乎没有与2相矛盾的内容,但在做出假设之前,总是值得检查意外情况
换句话说,是否存在此函数无法返回拉斐尔路径原点的正确X和Y坐标的情况(假设它已从有效拉斐尔路径的
somePath.attr('path')
传递输出):
根据路径,必须以moveto命令开头。根据路径,必须以moveto命令开头。我读过规范,但觉得它没有给出明确的答案:它说“路径数据段(如果有)必须以moveto命令开头”-但对我来说,这可能是有意义的,分段路径必须以
M
开头,但未分段路径可能不以M开头(因此“如果有”)。是否有任何信息确认连续路径需要以moveto开头?或者对“(如果有)”警告的解释?什么是未分段的路径?我认为这意味着如果path
元素具有d
属性,那么它必须以moveto开头。我怀疑他们在这里使用“段”这个词是错误的。除了规范之外,我也没有发现任何提到这一点的东西。当前,如果路径不是以moveto开头,Chrome不会呈现任何内容。这种“如果存在d
属性”的解释更有意义。Raphael还给出了错误error:Problem解析d=“…坐标…”
,在我测试它的开始没有M的任何路径上。似乎是决定性的,谢谢!我读过规范,但觉得它没有给出一个明确的答案:它说“路径数据段(如果有)必须以“moveto”命令开头”——但对我来说,这可能意味着,分段路径必须以M
开头,但未分段路径可能不会(因此“如果有”)。是否有任何信息确认连续路径需要以moveto开头?或者对“(如果有)”警告的解释?什么是未分段的路径?我认为这意味着如果path
元素具有d
属性,那么它必须以moveto开头。我怀疑他们在这里使用“段”这个词是错误的。除了规范之外,我也没有发现任何提到这一点的东西。当前,如果路径不是以moveto开头,Chrome不会呈现任何内容。这种“如果存在d
属性”的解释更有意义。Raphael还给出了错误error:Problem解析d=“…坐标…”
,在我测试它的开始没有M的任何路径上。似乎是决定性的,谢谢!
function getPathOrigin (path) {
if (path[0][0] == 'M') {
return {x: path[0][1], y: path[0][2]}
} else {
return {x: 0, y: 0}
}
}