Cuadro de límite dojox.gfx para nodos de texto y grupo
-
06-07-2019 - |
Pregunta
La documentación para getBoundingBox () en dojo dice:
Devuelve un cuadro delimitador de una forma. UNA La forma del texto es un objeto basado en puntos, por lo que no define un cuadro delimitador.
No lo entiendo. Cualquier implementación sensata de gráficos vectoriales para la web incluye un cuadro delimitador para objetos de texto (es decir, raphaelJS y jQuery SVG). Aquí, ¿qué significa " un objeto basado en puntos " significa?
No encontré ninguna referencia para un cuadro delimitador para el objeto de Grupo, pero al usar la última versión de Dojo, getBoundingbox
devuelve null
para Grupos también
Yo mismo puedo hacer fácilmente el cuadro delimitador para el rectángulo, pero las únicas formas realmente problemáticas que necesito para el cuadro delimitador son el Grupo y el Texto.
Terminé el dojo hotpatching como:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
Lo que, por supuesto, funcionará solo para el extremo delantero de salida SVG.
Pero me pregunto, ¿me estoy perdiendo algo? ¿Hay una mejor manera de hacerlo?
Solución
No encontré ninguna referencia para un cuadro delimitador para el objeto de grupo, pero al usar la última versión de Dojo, getBoundingbox devuelve nulo para los grupos también
¿Este problema está relacionado con esta corrección de errores ? A mi me lo parece. Fue modificado hace 7 meses por pruzand
y marcado como corregido
http://bugs.dojotoolkit.org/ticket/7019
Actualización 2012-07-24: descargué release-1.8.0rc1 localmente y configure el mismo prueba en el ticket resuelto. Esto, de hecho, se ha corregido en 1.8 y getBoundingBox que devuelve null en grupos se resuelve como se indica en el ticket. El script de prueba devuelve con éxito:
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 para lo que vale, de acuerdo con esta publicación de Twitter , se publicará la versión 1.8 en una semana o dos.