gpt4 book ai didi

ios - 来自远边的 UIBezierPath 曲线

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:09:20 25 4
gpt4 key购买 nike

在 iOS 中,我正在尝试绘制裁剪图像。我希望剪裁从一个边缘开始,弯曲到最远的相对边缘。下图以红色显示,即最终图像的边框。在这个例子中,曲线从左下角到右上角。

enter image description here

这是我目前编写的代码。我唯一的问题是这种方法 bezierPathWithRoundedRect:byRoundingCorners:cornerRadii: 没有弯曲到我需要的范围。

- (UIImage *)roundCorneredImage:(UIImage *)image radius:(CGFloat)radius {
CGRect imageRect = CGRectZero;
imageRect.size = image.size;

UIGraphicsBeginImageContextWithOptions(imageRect.size, NO, [UIScreen mainScreen].scale);

CGSize size = CGSizeMake(radius, radius);
[[UIBezierPath bezierPathWithRoundedRect:imageRect byRoundingCorners:UIRectCornerBottomRight cornerRadii:size] addClip];

[image drawInRect:imageRect];

UIImage* result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return result;
}

更新:

这是我得到的结果和更新后的代码。我需要一些进一步的帮助...

enter image description here

UIBezierPath* bezier = [UIBezierPath bezierPath];
[bezier moveToPoint:CGPointMake(0, 0)];
[bezier addLineToPoint:CGPointMake(0, imageRect.size.height)];

[bezier addArcWithCenter:CGPointMake(imageRect.size.width / 2, imageRect.size.height / 2)
radius:imageRect.size.height / 2
startAngle:M_PI / 2
endAngle:0
clockwise:NO];

[bezier addLineToPoint:CGPointMake(0, 0)];
[bezier addClip];

最佳答案

使用 addLineToPoint 添加直线,使用 addArcWithCenter:radius:startAngle:endAngle:clockwise: 添加曲线,这样您就可以控制曲线的形状。

关于ios - 来自远边的 UIBezierPath 曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211347/

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