Рафаэль - найдите ограничительную рамку текста ДО печати - PullRequest
2 голосов
/ 23 марта 2012

Полдень все,

Я пытаюсь нарисовать динамическую «линейку», которую можно масштабировать (вместе с остальной частью страницы) и комментировать, используя Рафаэля.

Iпути RaphaelBBox () и isBBoxIntersect у Рафаэля очень полезны для определения того, следует ли печатать градацию в определенной точке или она будет слишком близка к другой и поэтому должна быть пропущена.

Теперь мне нужно аннотировать некоторыевыпускных работ и хотите следовать аналогичному методу - аннотировать самые крупные выпускные работы, работая до наименьшего уровня детализации, но пропуская рисование текста, если он пересекается с некоторыми уже нарисованными.

К сожалению, мой взгляд через РафаэляДокументы только показали мне методы Paper.print () и Paper.text (), оба из которых добавляют к статье.Это означает, что мне нужно добавить, затем найти bbox и проверить, а затем удалить, если плохо - что потенциально довольно медленно.

Есть ли способ найти размеры некоторого текста, который я хочу напечатать, не печатая его?, так что я могу вручную создать объект bbox и проверить его на мои сохраненные bbox?

Как всегда, большое спасибо заранее!: -)

Ура, -Оли

1 Ответ

0 голосов
/ 23 марта 2012

Вы можете использовать .getBBox () для текста:

 var text = paper.text(...);
 if (text.getBBox().width > max) ...;

Я официально не видел этого документально, но он работает, и, видимо, кросс-браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...