dojox.gfx caixa delimitadora de texto e nós de grupo
-
06-07-2019 - |
Pergunta
A documentação para getBoundingBox () no dojo diz:
Retorna uma caixa delimitadora de uma forma. UMA forma texto é um objeto baseado em pontos, por isso, ele não define uma caixa delimitadora.
Eu não entendo. Qualquer implementação sane de gráficos de vetor para a web inclui caixa delimitadora para objetos de texto (raphaelJS e jQuery SVG que é)! Aqui, o que significa "um objeto com base ponto" significa?
Eu não encontrei nenhuma referência para uma caixa delimitadora para o objeto Group, mas quando se utiliza a versão mais recente do Dojo, getBoundingbox
retornos null
para Grupos bem
Eu posso facilmente fazer caixa delimitadora para o retângulo mim mesmo, mas as formas só é realmente problemáticos eu preciso caixa delimitadora para são o Grupo eo texto.
I terminou Hotpatching dojo como:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
O que, evidentemente, trabalhar apenas para o front-end de saída SVG.
Mas eu me pergunto, estou faltando alguma coisa? Existe uma maneira melhor de fazer isso?
Solução
Eu não encontrei nenhuma referência para uma caixa delimitadora para o objeto Group, mas quando se utiliza a versão mais recente do Dojo, getBoundingbox retorna nulo para Grupos bem
É este o problema relacionado com a este bug correção ? Parece que para mim. Foi Changed 7 months ago by pruzand
e marcado como fixo
http://bugs.dojotoolkit.org/ticket/7019
Atualização 2012-07-24: Eu transferi liberação-1.8.0rc1 localmente e configurar o mesma testar no ticket resolvido. Este fato foi fixado em 1,8 e getBoundingBox retornando null em grupos é resolvido como indicado no bilhete. O script de teste com sucesso retornos:
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}]
Também para o que vale a pena de, de acordo com twitter pós , 1,8 é devido a ser lançado em uma semana ou duas.