在Raphel.js中,如何获得BBox宽度&一群拉斐尔物体的高度?
例如,我在Rapheal论文中渲染了几个元素,如下所示:
var paper = Raphael(10, 50, 320, 200);
var st = paper.set();
var c = paper.rect(40, 40, 50, 50, 10);
var e = paper.ellipse(50, 50, 40, 20);
var i = paper.image("apple.png", 10, 10, 80, 80);
var t = paper.text(50, 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 。我想这是Rapheal的一个错误。那么,如果我想获得我画布的当前BBox大小(一组元素),那么正确的方法是什么?
答案 0 :(得分:1)
您可以手动执行此操作。对于组中的每个元素:
获取left
或x
坐标。获得最小的价值。 var MinLeft
获取right
坐标。它可以像left
+ width
或x2
一样计算。获得最大价值。 var MaxRight
获取top
或y
坐标。获得最小的价值。 var MinTop
获取bottom
坐标。它可以像top
+ height
或y2
一样计算。获得最大价值。 var MaxBottom
结果:您的论坛的left
= MinLeft
;您的论坛的top
= MinTop
;您的论坛的height
= MaxBottom-MinTop
;您的论坛的width
= MaxRight-MinLeft