0

我正在寻找将 SVG 的变换坐标解析为 X 和 Y 变量的最佳方法。变换坐标以格式存储在字符串属性中 "translate(32.84441676851017 11.803819679481) rotate(0)"。我需要解析值$x=32.84441676851017$y=11.803819679481.

到目前为止,我正在使用这个自写的函数,但我想有更快的解析方法吗?

private function _get_string_between($s, $str1, $str2) 
{
    $start = strpos($s, $str1);
    if ($start === false) {
    return '';
    }

    $start += strlen($str1);
    $end = strpos($s, $str2, $start); 
    if ($end === false) {
    return '';
    }

    return explode(' ', substr($s, $start, $end - $start));
}    
4

2 回答 2

2

使用d3.transform(string)

例子:

 var theta = d3.transform($("#svg-element").attr("transform")).rotate;
于 2012-11-26T22:22:26.110 回答
1

有一个扫描函数可以从字符串中读取浮点值:

sscanf($string, 'translate(%f %f) rotate(0)', $x, $y);

sscanf演示

于 2012-06-02T09:15:09.003 回答