Расчленение текстовых примитивов
Вопрос:
Как расчленить основанные на SHX-шрифтах примитивы AcDbText на входящие в их состав линии?
Ответ:
Вы можете “расчленить” или тессиллировать текстовый примитив, используя метод AcGiTextEngine::tessellate(). Но этот метод возвращает необработанную информацию о точках, которая может быть использована для создания отдельных линий. Метод этот не учитывает свойства текстового стиля и высоту текста, а ширина подразумевается единичной.
Чтобы получить точное представление примитива AcDbText entity, нам нужно будет трансформировать необработанные точки, в зависимости от атрибутов текста и его текстового стиля. В прилагаемом примере функция fGeneratematrix () создает матрицу преобразования, которая разместит линии точно там, где они проходят в тексте. Эта матрица преобразования учитывает угол наклона, вертикальность и направление текста (слева - направо или наоборот).
ПРИМЕЧАНИЕ: True Type (TTF) шрифты не поддерживаются.
Источник: http://adndevblog.typepad.com/autocad/2012/10/explode-text-entity.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=78.0
Отредактировано 08.06.2013 в 02:07:23