如何获得BBox宽度&一群拉斐尔物体的高度?

时间:2011-06-16 14:18:14

标签: javascript-events javascript raphael javascript-framework

在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大小(一组元素),那么正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以手动执行此操作。对于组中的每个元素:

  1. 获取leftx坐标。获得最小的价值。 var MinLeft

  2. 获取right坐标。它可以像left + widthx2一样计算。获得最大价值。 var MaxRight

  3. 获取topy坐标。获得最小的价值。 var MinTop

  4. 获取bottom坐标。它可以像top + heighty2一样计算。获得最大价值。 var MaxBottom

  5. 结果:您的论坛的left = MinLeft;您的论坛的top = MinTop;您的论坛的height = MaxBottom-MinTop;您的论坛的width = MaxRight-MinLeft