Как заполнить мой круг (CGContextAddArc) другим цветом? - PullRequest
1 голос
/ 02 августа 2011

У меня есть следующее, но оно только рисует границу круга.Я хотел бы заполнить круг.??

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);
CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);

//fill or draw the path
CGContextDrawPath(context, kCGPathStroke);
CGContextDrawPath(context, kCGPathFill);

Ответы [ 6 ]

2 голосов
/ 03 августа 2011

Вам необходимо использовать CGContextFillPath для заполнения пути.

1 голос
/ 14 мая 2014

Для заливки сплошным цветом он должен иметь kCGPathFill в CGContextDrawPath(context, kCGPathFill);

Для мазка цветом должен иметь kCGPathStroke в CGContextDrawPath(context, kCGPathStroke);

Примерно так:

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

//fill on drawn path
CGContextDrawPath(context, kCGPathFill);
1 голос
/ 12 февраля 2013

Удалить линии, связанные с обводкой, и использовать только линии, связанные с заливкой.

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

//set the fill or stroke color
CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

//fill or draw the path
CGContextDrawPath(context, kCGPathStroke);

Если вы хотите только круг

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);
CGContextDrawPath(context, kCGPathStroke);
0 голосов
/ 23 февраля 2016

Путь заполнения:

    let context = UIGraphicsGetCurrentContext()
    CGContextAddArc(context, self.bounds.width/2, self.bounds.height/2, 150, 0, CGFloat(2 * M_PI), 0)
    UIColor.redColor().setFill()
    CGContextFillPath(context)

круг:

        let context = UIGraphicsGetCurrentContext()
        CGContextAddArc(context, self.bounds.width/2, self.bounds.height/2, 150, 0, CGFloat(2 * M_PI), 0)
        CGContextSetLineWidth(context, 10)
        UIColor.greenColor().set()
        CGContextStrokePath(context)
0 голосов
/ 22 октября 2015

если вы хотите заполнить кружок, вы можете использовать это

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBFillColor(context, 1, 0.5, 0.5, 1.0);

CGContextFillPath(context);

, и этот код ниже используется для рисования границы для круга

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextAddArc(context, 50, 50, 50, 0, 30, 0);

CGContextSetRGBStrokeColor(context, 0.5, 1, 0.5, 1.0);

CGContextStrokePath(context);

, поэтому в этом случае вы должны выбрать первый вариант, чтобы заполнить круг

0 голосов
/ 16 апреля 2015
CGContextAddArc(ctx, x, y, 1.0, 0, 2 * Pi, 1); // Or is it 2 * M_PI?

CGContextSetFillColorWithColor(ctx, fillColor);
CGContextSetStrokeColorWithColor(ctx, strokeColor);
CGContextDrawPath(ctx, kCGPathFillStroke);;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...