从CGPath修剪/减去CGPath?
我在CGPath
进行了一些CGPath
(带有两个圆的CAShapeLayer
。
我可以修剪/减去这样的path吗?
而不是做math,结果可以在绘图时使用kCGBlendModeClear
来实现。
// Create the poly. CGContextBeginPath(context); CGContextMoveToPoint (context, a_.x, a_.y); CGContextAddLineToPoint (context, b_.x, b_.y); CGContextAddLineToPoint (context, c_.x, c_.y); CGContextAddLineToPoint (context, d_.x, d_.y); CGContextClosePath(context); // Draw with the desired color. CGContextSetFillColorWithColor(context, self.color.CGColor); CGContextFillPath(context); // Create a circle. CGContextBeginPath(context); CGContextAddEllipseInRect(context, (CGRect){ b_.x - self.radius, b_.y - self.radius, self.radius * 2.0, self.radius * 2.0 }); CGContextClosePath(context); // Draw with Clear (!) blend mode. CGContextSetBlendMode(context, kCGBlendModeClear); CGContextSetFillColorWithColor(context, self.color.CGColor); CGContextFillPath(context);