Нарисуйте букву без Glyph, используя UIBezierPath

Я хочу рисовать буквы, используя UIBezierPath. Я нашел руководство здесь. Однако он дает мне замкнутый путь, представляющий контур буквы, как показано ниже. Мне нужен путь, представляющий тело письма.

Как это можно сделать одной линией, представляющей тело?

Персонаж


person John    schedule 01.08.2013    source источник
comment
Ваш вопрос не очень ясен. Я понимаю, что английский, вероятно, не ваш родной язык. Пожалуйста, отредактируйте свой вопрос. Попробуйте добавить больше деталей о том, что вы хотите сделать и что не так с учебником.   -  person rob mayoff    schedule 01.08.2013
comment
@robmayoff, спасибо. Я отредактировал свой вопрос.   -  person John    schedule 01.08.2013
comment
Вы имеете в виду, что вместо линии, трассирующей контур глифа, вам нужна линия, трассирующая тело глифа?   -  person Adam Wright    schedule 01.08.2013
comment
Да @AdamWright Я хочу, чтобы путь персонажа был только одной строкой, а не контуром.   -  person John    schedule 01.08.2013
comment
@PhamTuyen: я не знаю, поможет ли это, но заполнение пути вместо обводки нарисует тело глифа.   -  person Martin R    schedule 02.08.2013


Ответы (2)


В общем, глифы в современных шрифтах не являются «линиями» в том смысле, о котором вы говорите. Это наброски. Чтобы понять почему, подумайте о любом шрифте с засечками, например Times. Как засечки будут выражены в виде одной строки?

Тем не менее, существует особый класс шрифтов, в просторечии называемых «стиковыми шрифтами», которые состоят из линий и часто используются для гравировки с ЧПУ. Вот ресурс: Шрифты CamBam Stick Возможно, он будет вам полезен.

person ipmcc    schedule 01.08.2013

Как вы уже поняли, Core Text может предоставить только контур глифа. Запрашивать «одну строку» для глифа немного двусмысленно; рассмотрим букву i - какая единственная строка будет ее представлять? Более того, одна строка не может кодировать информацию о различной ширине внутри глифа.

Существуют методы для замкнутых путей Безье, с помощью которых вы можете вычислить путь, представляющий некоторое понятие «центра». Я не могу вспомнить их навскидку. Однако, если вы хотите нарисовать глифы, вы можете сделать это только с помощью контура; используйте CGContextFillPath, чтобы нарисовать заполненный глиф (при условии, что ваш контекст имеет заданный цвет заливки).

person Adam Wright    schedule 01.08.2013