2

下午所有,

我正在尝试使用 Raphael 绘制一个可以缩放(连同页面的其余部分)并进行注释的动态“标尺”。

我发现 Raphael 的 pathBBox() 和 isBBoxIntersect 对于确定是否应该在某个点打印刻度或者它是否太靠近另一个点而应该被跳过非常有用。

现在我需要注释一些刻度并希望遵循类似的方法 - 注释最大的刻度,工作到最小的细节水平,但如果文本与已经绘制的一些相交则跳过绘制文本。

不幸的是,我浏览 Raphael 文档只向我展示了 Paper.print() 和 Paper.text() 方法,这两个方法都添加到了论文中。这意味着我必须添加,然后找到 bbox 并测试,如果不好则删除 - 这可能相当慢。

有没有办法在不打印的情况下找到我想要打印的某些文本的尺寸,这样我就可以手动创建一个 bbox 对象并针对我存储的 bbox 进行测试?

与往常一样,提前非常感谢!:-)

干杯,-奥利

4

1 回答 1

0

您可以在文本上使用 .getBBox() :

 var text = paper.text(...);
 if (text.getBBox().width > max) ...;

我没有看到这个正式记录,但它有效,并且显然是跨浏览器的。

于 2012-03-23T13:02:14.213 回答