dojo中的getBoundingBox()文档中这样写道:
返回形状的边界框。文本形状是基于点的对象,因此它不定义边界框。
我还是不明白。web矢量图形的任何合理实现都包括文本对象(即raphaelJS和jQuery SVG )的边界框!这里,“基于点的对象”是什么意思?
我没有找到组对象边界框的引用,但是当使用最新的Dojo版本时,getBoundingbox
也为组返回null
我可以很容易地自己做矩形的边界框,但我需要边界框的唯一真正有问题的形状是组和文本。
我结束了对dojo的热修补,如下所示:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
这当然只适用于SVG输出前端。
但我想知道,我是不是漏掉了什么?有没有更好的方法呢?
发布于 2012-07-24 11:08:45
Dojo我没有找到组对象边界框的引用,但是当使用最新的
版本时,getBoundingbox也为组返回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中得到了解决,并且getBoundingBox在组上返回null的问题也在工单中得到了解决。测试脚本成功返回:
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将在一两周内发布。
https://stackoverflow.com/questions/1612831
复制相似问题