Документация для 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.
Но мне интересно, я что-то упустил? Есть ли лучший способ сделать это?