Заполните круг с контуром - PullRequest
0 голосов
/ 27 февраля 2011

Мне нужно нарисовать закрашенный круг, и он должен иметь контур другого цвета. Прямо сейчас я делаю это, создавая два круга и заполняя один, а затем поглаживая другой.

CGContextFillEllipseInRect(context, CGRectMake(10, 10, 80, 80));
CGContextStrokeEllipseInRect(context, CGRectMake(10, 10, 80, 80));

Проблема в том, что круг выглядит немного смещенным и неровным. Есть ли функция, позволяющая одновременно нарисовать круг с контуром в одну линию?

Ответы [ 2 ]

1 голос
/ 27 февраля 2011

Проблема в том, что круг выглядит немного смещенным и неровным.

Что вы подразумеваете под этим?Пожалуйста, отредактируйте свой вопрос, добавив скриншот.

Вы отключили сглаживание?Если так, то это может быть причиной.

Вы сами создали контекст?Если это так, пожалуйста, отредактируйте свой вопрос, включив в него код, который это делает.

Существует ли функция, позволяющая одновременно рисовать круг с контуром в одной строке?

Вы можете использовать CGContextAddEllipseInRect, чтобы добавить эллипс к текущему пути контекста, затем использовать CGContextDrawPath с операцией kCGPathFillStroke.Он должен быть немного быстрее (поскольку путь создается только один раз), но не должен иметь никакого другого значения.

0 голосов
/ 27 февраля 2011

Попробуйте добавить немного толщины к контуру, поглаживая с большей шириной линии пера.Вам также может понадобиться вставить прямоугольник на половину ширины пера.

...