gpt4 book ai didi

ios - 从 CGPath 中修剪/减去 CGPath?

转载 作者:技术小花猫 更新时间:2023-10-29 11:24:38 28 4
gpt4 key购买 nike

我在 CAShapeLayer 上执行了一些 CGPath(一个带有两个圆圈的多边形)。

我可以像这样修剪/减去路径吗?

enter image description here

最佳答案

无需计算,可以在绘制时使用 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);

关于ios - 从 CGPath 中修剪/减去 CGPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19361294/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com