Подтвердить что ты не робот

Dojox.gfx ограничивающий прямоугольник для текстовых и групповых узлов

В документации для 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.

Но мне интересно, я что-то упускаю? Есть ли лучший способ сделать это?

4b9b3361

Ответ 1

Я не нашел ссылки для ограничивающего блока для объекта Group, но при использовании последней версии Dojo getBoundingbox возвращает null для групп, а также

Эта проблема связана с исправлена ​​эта ошибка? Мне это нравится. Он был Changed 7 months ago by pruzand и помечен как фиксированный

http://bugs.dojotoolkit.org/ticket/7019

Обновление 2012-07-24: Я загрузил release-1.8.0rc1 локально и настроил тот же тест в разрешенном билете. Это действительно было исправлено в 1.8 и getBoundingBox, возвращающий null для групп, разрешен, как указано в билете. Тест script успешно возвращает:

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}]

И за то, что стоит, согласно этот пост в Twitter, 1.8 должен быть выпущен через неделю или две.