Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Raphael/SVG路径定义是否总是以';M';?(如果不是,那么这条路径的原点是否总是0,0?)_Javascript_Svg_Raphael - Fatal编程技术网

Javascript Raphael/SVG路径定义是否总是以';M';?(如果不是,那么这条路径的原点是否总是0,0?)

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开始的任何移动都将来

我正在编写一些类似插件的代码,以简化将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}
        }
    }