拉斐尔 - 在打印之前找到文本的边界框

时间:2012-03-23 12:35:40

标签: text raphael bounding-box

下午全部,

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

我发现Raphael的pathBBox()和isBBoxIntersect非常有用,可以确定是否应该在某个点打印刻度,或者它是否与另一个点太接近,因此应该跳过。

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

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

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

一如既往,非常感谢! : - )

干杯, -OLi

1 个答案:

答案 0 :(得分:0)

您可以在text:

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

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