我正在研究一些类似插件的代码,以简化将Raphael路径移动到固定位置的过程。
通常,Raphael路径的第一部分(使用基于SVG语法的语法)是“M”moveto命令,用于定义路径的原点。
两个密切相关的问题:
somePath.attr(path)[0][0] != 'M'
)开头的Raphael路径数组时,可以假设这条路径的起点始终是0,0吗?因此,0,0的任何移动都来自过去的转换,因此将在somePath.attr(transform)
中描述? 从Raphael的文档中,看起来Path数组的规范中没有任何内容与2相矛盾,但在做出假设之前总是值得检查意外情况。
换句话说,是否有任何情况下此函数不会返回Raphael路径原点的正确X和Y坐标(假设它传递了有效Raphael的somePath.attr('path')
的输出路径):
function getPathOrigin (path) {
if (path[0][0] == 'M') {
return {x: path[0][1], y: path[0][2]}
} else {
return {x: 0, y: 0}
}
}