3

假设我有一个 CGPath,它是 CGContextRef 中的一个圆圈。我想做的是用颜色填充路径的倒数。下面演示了圆圈是绘制的当前路径,我想用颜色填充圆圈的反面,留下一个空洞:

在此处输入图像描述

4

2 回答 2

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
于 2013-10-07T18:00:16.953 回答
1

由于您有重叠的圆圈,您需要创建一个代表这些圆圈联合的路径,然后将该路径添加到您的矩形并按照大卫的建议进行填充。

为了创建圆形路径的联合,这个项目将被证明是无价的:

https://bitbucket.org/martinwinter/vectorbooleancg

确保您检查了“CGPath”分支以获得 iOS 支持。

于 2013-10-07T18:29:53.557 回答