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

标签 javascript raphael javascript-framework

在Raphel.js中,如何获取一组Raphael对象的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的一个错误。那么,如果我想获取 Canvas (一组元素)的当前 BBox 大小,正确的方法是什么?

最佳答案

您可以手动完成。对于组的每个元素:

  1. 获取x 坐标。获得最小值。 var MinLeft

  2. 获得正确的坐标。它可以像 left+widthx2 这样计算。获取最大值。 var MaxRight

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

  4. 获取底部坐标。它可以像 top+heighty2 那样计算。获取最大值。 var MaxBottom

  5. 结果:你组的left=MinLeft;你的组的top=MinTop;你的组的height=MaxBottom-MinTop;你组的 width=MaxRight-MinLeft

关于javascript - 如何获取一组 Raphael 对象的 BBox 宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373404/

相关文章:

javascript - const 已经在 ES6 开关 block 中声明

javascript - 拉斐尔 JS : how to move/animate a path object?

javascript - 绑定(bind) Mootools 事件和调用类方法的问题

node.js - 将函数传递给其他原型(prototype)

JavaScript - "yield"是 ES7 中的正确标识符名称吗

javascript - 在 JavaScript 中打印当前堆栈跟踪

javascript - php 脚本中 json 返回值的 ajax jquery 错误

javascript - Raphael JS - 禁用绘图中的 HREF

javascript - 如何在 jquery 中通过其 href 获取元素?

javascript - 在 html 中插入 javascript 变量的框架