如何获取一组Raphael对象的BBox宽度和高度?

问题描述

| 在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