【问题标题】:Filling the inverse of the CGPath without clipping在不裁剪的情况下填充 CGPath 的倒数
【发布时间】:2013-10-14 09:31:29
【问题描述】:

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

【问题讨论】:

    标签: iphone core-graphics quartz-2d clipping cgpath


    【解决方案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
    

    【讨论】:

    • 这是一个很好的建议,除了我有重叠的圆圈,甚至奇怪会产生不良结果
    【解决方案2】:

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

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

    https://bitbucket.org/martinwinter/vectorbooleancg

    确保查看“CGPath”分支以获得 iOS 支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 2019-05-10
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多