假设我有一个CGPath,它是CGContextRef中的一个圆圈。我想做的是用颜色填充路径的倒数。下面显示的是圆是绘制的当前路径,我想用颜色填充圆的倒数,留下一个空洞:
答案 0 :(得分:1)
首先将矩形添加到路径中,然后将圆圈(或任何路径)添加到同一路径。然后进行偶数填充,这将不会填充圆圈,因为它被圆圈和矩形覆盖。
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, bigRect); // add the big rect
CGPathAddPath(path, NULL, circlePath); // add your shape (the circle)
CGContextDrawPath(path, kCGPathEOFill); // even-odd fill
答案 1 :(得分:1)
由于您有重叠的圆圈,因此您需要创建一条代表这些圆圈的并集的路径,然后将该路径添加到矩形并按照David建议填充。
要创建圆形路径的并集,此项目将证明是非常宝贵的:
https://bitbucket.org/martinwinter/vectorbooleancg
请务必查看“CGPath”分支以获得iOS支持。