1.两个相交的圆圈与同一半径和填补单独的交集:
// Use first circle as clipping path:
CGContextAddArc(context, 150, 150, 50, 0, 2 * M_PI, 1);
CGContextClip(context);
// Draw second circle:
CGContextAddArc(context, 200, 150, 50, 0, 2 * M_PI, 1);
CGContextFillPath(context);
2.多个圆的交集:
CGContextSaveGState(context);
CGContextAddArc(context, 150, 150, 50, 0, 2 * M_PI, 1);
CGContextClip(context);
CGContextAddArc(context, 200, 150, 50, 0, 2 * M_PI, 1);
CGContextDrawPath(context, kCGPathFillStroke);
CGContextRestoreGState(context);
CGContextAddArc(context, 200, 150, 50, 0, 2 * M_PI, 1);
CGContextClip(context);
CGContextAddArc(context, 150, 150, 50, 0, 2 * M_PI, 1);
CGContextDrawPath(context, kCGPathStroke);
如果想实现上面的图第一个方法只能实现相对的交集,不能实现多个圆的填充交集
比如上面图San Francisco实现了与Cloudy和July,2013圆的的填充交集,但会发现Fahrenheit不能让和Cloudy,Julu,2013实现填充交集。反过来一样,第二种方法可以实现多个圆填充交集。