问题描述
|
在Raphel.js中,如何获取一组Raphael对象的BBox宽度和高度?
例如,我在Rapheal纸上绘制了以下几个元素:
var paper = Raphael(10,50,320,200);
var st = paper.set();
var c = paper.rect(40,40,10);
var e = paper.ellipse(50,20);
var i = paper.image(\"apple.png\",10,80,80);
var t = paper.text(50,\"Raphaël\\nkicks\\nbutt!\");
...
st.push(c,e,i,t ...);
我试图使用以下方法来获取一组元素的BBox宽度和高度:
var myBBox = st.getBBox();
var width = myBBox.width;
var height = myBBox.height;
console.log(width+\',\'+height);
有时它是可行的,但有时我会获得Infinity的价值。我猜这是拉菲尔的虫子。因此,如果我想获取画布的当前BBox大小(一组元素),正确的方法是什么?
解决方法
您可以手动执行。对于组的每个元素:
获取
left
或x
坐标。获得最小值。 var MinLeft
获取right
坐标。可以像left
+width
或x2
那样计算。获得最大值。 var MaxRight
获取top
或y
坐标。获得最小值。 var MinTop
获取bottom
坐标。可以像top
+height
或y2
那样计算。获得最大值。 var MaxBottom
结果:您的小组的left
=MinLeft
;您小组的s10ѭ=MinTop
;您小组的height
=MaxBottom-MinTop
;您小组的width
=MaxRight-MinLeft