【发布时间】:2010-12-09 10:17:26
【问题描述】:
dojo 中 getBoundingBox() 的文档说:
返回一个形状的边界框。一种 文本形状是一个基于点的对象,所以 它没有定义边界框。
我不明白。任何用于 Web 的矢量图形的合理实现都包括文本对象的边界框(raphaelJS 和 jQuery SVG)!这里,“基于点的对象”是什么意思?
我没有找到关于 Group 对象边界框的参考,但是当使用最新的 Dojo 版本时,getBoundingbox 也会为 Groups 返回 null
我自己可以轻松地为矩形制作边界框,但我需要边界框的唯一真正有问题的形状是组和文本。
我像这样结束了热补丁道场:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
这当然只适用于 SVG 输出前端。
但我想知道,我错过了什么吗?有没有更好的方法来做到这一点?
【问题讨论】:
-
好吧,我是个菜鸟......但在 SVG 中,文本不仅仅是基于点的对象......srufaculty.sru.edu/david.dailey/svg/getCTM.svg 或者我不明白这个问题。
-
dojox.gfx 不仅仅是 SVG。它是可用的跨浏览器 gfx 引擎的规范化(svg || vml || silverlight || 等)......如果一个渲染器不能“做某事”,它可能没有进入“规范化”API是 dojox.gfx(我个人想到的另一件事是渐变上的多站,afaik VML 无法处理,但 SVG 做得很好)
标签: svg vector-graphics dojo dojox.gfx