svg vector-graphics dojo dojox.gfx

svg - Cuadro delimitador dojox.gfx para nodos de texto y grupo



vector-graphics (1)

No encontré ninguna referencia para un cuadro delimitador para el objeto Grupo, pero cuando uso la última versión de Dojo, getBoundingbox devuelve nulo para Grupos también

¿Este problema está relacionado con esta corrección de errores ? Me parece que es así. Fue Changed 7 months ago by pruzand y marcado como fijo

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

Actualización 2012-07-24: descargué release-1.8.0rc1 localmente y configuré la misma prueba en el ticket resuelto. Esto de hecho se ha corregido en 1.8 y getBoundingBox devolviendo nulo en los grupos se resuelve como se indica en el ticket. El script de prueba vuelve exitosamente:

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}]

También por lo que vale, de acuerdo con esta publicación en Twitter , 1.8 se lanzará en una semana o dos.

La documentación para getBoundingBox () en dojo dice:

Devuelve un cuadro delimitador de una forma. Una forma de texto es un objeto basado en puntos, por lo que no define un cuadro delimitador.

No lo entiendo Cualquier aplicación sensata de gráficos vectoriales para la web incluye un cuadro delimitador para objetos de texto (¡raphaelJS y jQuery SVG eso es)! Aquí, ¿qué significa "un objeto basado en puntos"?

No encontré ninguna referencia para un cuadro delimitador para el objeto Grupo, pero cuando uso la última versión de Dojo, getBoundingbox devuelve null para Grupos también

Puedo hacer fácilmente un cuadro delimitador para el rectángulo, pero las únicas formas realmente problemáticas para las que necesito un cuadro delimitador son el Grupo y el Texto.

Terminé hotpatching dojo como:

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

Lo cual, por supuesto, solo funcionará para la interfaz de salida SVG.

Pero me pregunto, ¿me estoy perdiendo algo? ¿Hay una mejor manera de hacer eso?