dojox.gfx文本和组节点的边界框

时间:2009-10-23 11:31:02

标签: svg vector-graphics dojo dojox.gfx

dojo中getBoundingBox()的文档说:

  

返回形状的边界框。一个   文本形状是一个基于点的对象,所以   它没有定义边界框。

我不明白。 Web的矢量图形的任何理智的实现包括文本对象的边界框(raphaelJS和jQuery SVG)!在这里,“基于点的对象”是什么意思?

我没有找到Group对象的边界框的引用,但是当使用最新的Dojo版本时,getBoundingbox也为组返回null

我自己可以很容易地为矩形做边界框,但是我需要边界框的唯一真正有问题的形状是Group和Text。

我结束了热门的dojo,如:

dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});

这当然只适用于SVG输出前端。

但我想知道,我错过了什么吗?有没有更好的方法呢?

1 个答案:

答案 0 :(得分:2)

  

我没有找到Group对象的边界框的引用,但是当使用最新的Dojo版本时,getBoundingbox也为Groups返回null

此问题与this bug fix有关吗?听起来对我来说。它是Changed 7 months ago by pruzand并标记为已修复

http://bugs.dojotoolkit.org/ticket/7019

更新2012-07-24:我在本地下载了release-1.8.0rc1并在已解决的故障单中设置了same test。这确实已在1.8中修复,并且在组中返回null的getBoundingBox将按照故障单中的说明进行解析。测试脚本成功返回:

bbox of group: {"x":0,"y":2,"endX":238,"endY":379,"width":238,"height":377}
transformed bbox: [{"x":277.7302117816355,"y":152.5448441073243},{"x":512.114456998541,"y":193.87311039205372},{"x":446.64909401810826,"y":565.1456332776561},{"x":212.26484880120276,"y":523.8173669929267}]

根据this twitter post的说法,1.8的价值也将在一两个星期内发布。