在不使用边界框的情况下获取svg路径的尺寸

时间:2013-02-19 03:17:49

标签: javascript html5 svg jquery-svg librsvg

是否有办法获取svg路径的尺寸并将其显示在div中?边界框不是一个选项,因为当它涉及贝塞尔曲线时,它在Webkit中是错误的。我正在修改svg-edit btw:https://code.google.com/p/svg-edit/

这就是我目前使用的。

    <script>
    var myVar=setInterval(function(){getDimensions()},10);

    function getDimensions() 

    {

  svgNode = svgCanvas.getSelectedElems()[0];


var getw = svgNode.getBoundingClientRect().width;
var geth = svgNode.getBoundingClientRect().height;
getw= parseInt(getw);
geth= parseInt(geth);
 document.getElementById('heightbox').innerHTML = geth;
 document.getElementById('widthbox').innerHTML = getw;



}

    </script>

不幸的是,边界框是不可靠的。除了bbox之外的任何想法吗?

1 个答案:

答案 0 :(得分:5)

RaphaelJS有一种实用方法,用于确定路径的边界框 - http://raphaeljs.com/reference.html#Raphael.pathBBox

var dims = Raphael.pathBBox(pathString);
var getw = dims.width;
var geth = dims.height;