【问题标题】:dojox.gfx bounding box for Text and Group nodes文本和组节点的 dojox.gfx 边界框
【发布时间】: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


【解决方案1】:

我没有找到 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 中修复,并且 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 将在一两周内发布。

【讨论】:

  • 听起来不错,当我第一次问这个问题时并没有发生。想验证它是否确实有效?
猜你喜欢
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
相关资源
最近更新 更多