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

How to get BBox width & height of a group of Raphael objects?

本文关键字:一组 高度 宽度 BBox 何获得 amp      更新时间:2023-09-26

在Raphel.js中,如何获取BBox width&一组拉斐尔物体的高度?

例如,我在拉斐尔的论文中呈现了以下几个元素:

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。我想这是拉斐尔的错误。那么,如果我想获得画布(一组元素)的当前BBox大小,正确的方法是什么?

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

  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