Как получить ширину BBox и высоту группы объектов Рафаэля? - PullRequest
3 голосов
/ 16 июня 2011

В Raphel.js, как получить ширину BBox и высоту группы объектов Raphael?

Например, я нарисовал несколько элементов на своей бумаге 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);

Иногда это работает, но иногда я получаю значение Бесконечность для высоты.Я думаю, это ошибка Rapheal.Итак, если я хочу получить текущий размер BBox моего холста (группы элементов), как правильно это сделать?

1 Ответ

1 голос
/ 26 июня 2012

Вы можете сделать это вручную. Для каждого элемента группы:

  1. Получить left или x координату. Получите минимальное значение. var MinLeft

  2. Получить right координату. Его можно рассчитать как left + width или x2. Получите максимальное значение. var MaxRight

  3. Получите top или y координату. Получите минимальное значение. var MinTop

  4. Получить bottom координату. Его можно рассчитать как top + height или y2. Получите максимальное значение. var MaxBottom

  5. Результат: у вашей группы left = MinLeft; top = MinTop вашей группы; height = MaxBottom-MinTop вашей группы; width = MaxRight-MinLeft

...