В документации для getBoundingBox() в dojo говорится:
Возвращает ограничивающий прямоугольник формы. текстовая форма - объект на основе точек, поэтому он не определяет ограничивающий прямоугольник.
Я не понимаю. Любая нормальная реализация векторной графики для Интернета включает ограничивающий прямоугольник для текстовых объектов (raphaelJS и jQuery SVG, который есть)! Здесь, что означает "объект, основанный на точке"?
Я не нашел ссылки для ограничивающего блока для объекта Group, но при использовании последней версии dojo getBoundingbox
возвращает null
для групп, а также
Я могу легко сделать ограничительную рамку для прямоугольника самостоятельно, но единственные действительно проблематичные формы, для которых мне нужна ограничивающая рамка, - это группа и текст.
Я закончил hotpatching dojo как:
dojox.gfx.Text.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
dojox.gfx.Group.prototype.getBoundingBox = function() { return this.rawNode.getBBox();});
Что, конечно, будет работать только для выходного интерфейса SVG.
Но мне интересно, я что-то упускаю? Есть ли лучший способ сделать это?