cuadro delimitador dojox.gfx para nodos de texto y grupo
Frecuentes
Visto 2,274 veces
65
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 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"?
No encontré ninguna referencia para un cuadro delimitador para el objeto de grupo, pero al usar la última versión de Dojo, getBoundingbox
devoluciones null
también para grupos
Yo mismo puedo hacer fácilmente un cuadro delimitador para un 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 que, por supuesto, funcionará solo para la interfaz de salida SVG.
Pero me pregunto, ¿me estoy perdiendo algo? ¿Existe una mejor manera de hacerlo?
1 Respuestas
2
No encontré ninguna referencia para un cuadro delimitador para el objeto Grupo, pero cuando utilizo la última versión de Dojo, getBoundingbox devuelve nulo para Grupos también
¿Este problema está relacionado con esta corrección de errores? Me suena a eso. Era Changed 7 months ago by pruzand
y marcado como fijo
http://bugs.dojotoolkit.org/ticket/7019
Actualizar 2012-07 24-: He descargado lanzamiento-1.8.0rc1 localmente y configure el misma prueba en el ticket resuelto. De hecho, esto se ha solucionado en 1.8 y getBoundingBox que devuelve nulo en los 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 por lo que vale, según esta publicación de twitter, 1.8 se lanzará en una semana o dos.
Respondido 24 Jul 12, 16:07
Suena bien, no sucedió cuando hice la pregunta por primera vez. ¿Le importaría verificar que realmente funciona? - Elazar Leibovich
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas svg vector-graphics dojo dojox.gfx or haz tu propia pregunta.
Bueno, soy un novato ... pero en el texto SVG no es solo un objeto basado en puntos ...srufaculty.sru.edu/david.dailey/svg/getCTM.svg o no entiendo el problema. - Alex
dojox.gfx no es solo SVG. Es una normalización de los motores gfx de navegadores cruzados disponibles (svg || vml || silverlight || etc) ... Si un renderizador no puede "hacer algo", es probable que no haya entrado en la API "normalizada" que es dojox.gfx (otra cosa que me viene a la mente que he acertado personalmente son múltiples paradas en gradientes, que afaik VML no maneja pero SVG lo hace bastante bien) - dante