当前位置: 首页 > news >正文

贝塞尔曲线学习

贝塞尔曲线是UIkit中的一个关于图形绘制的类

贝塞尔曲线可以绘制矩形,圆形,直线,曲线,以及它们的混合图形。

系统常用的内置方法

// 创建基本路径

+ (instancetype)bezierPath;

// 创建矩形路径

+ (instancetype)bezierPathWithRect:(CGRect)rect;

// 创建椭圆路径

+ (instancetype)bezierPathWithOvalInRect:(CGRect)rect;

// 圆角矩形

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius;

// 创建指定位置的圆角矩形

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;

// 绘制弧线

     center:弧线圆心坐标

     radius:弧线半径

     startAngle:弧线起始角度

     endAngle:弧线结束角度

     clockwise:是否顺时针绘制

+ (instancetype)bezierPathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

// 绘制一个圆弧

- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

//绘制圆角图片 常用于tableViewcollectionView 复用机制里面加载圆角图片卡顿 主要是因为系统默认方法直接切,是在屏幕外操作完成后,才渲染到屏幕上(离屏渲染) 解决方案:异步绘制,主线程渲染

-(void)drawRect:(CGRect)rect

{

    UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

    UIImage *image=[UIImage imageNamed:@"share_code_pro"];

    CGRect rect1 = CGRectMake(0, 0, 100, 100);

    

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(100, 100), NO, [UIScreen mainScreen].scale);

    //获取图形上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    //构建bezier曲线

    UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:rect1 byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(20, 20)];

    //

    CGContextAddPath(ctx,path.CGPath);

    //裁剪

    CGContextClip(ctx);

    //将图片贴上去

    [image drawInRect:rect1];

    CGContextDrawPath(ctx, kCGPathFillStroke);

    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();

    //关闭图形上下文

    UIGraphicsEndImageContext();

    imageView.image=newImage;

    [self addSubview:imageView];

}

转载于:https://www.cnblogs.com/ghy66/p/6386877.html

相关文章:

  • 2007浙大复试上机考试题目2--统计字符
  • static作用(修饰函数、局部变量、全局变量)
  • 18 Issues in Current Deep Reinforcement Learning from ZhiHu
  • PC 微信扫码登陆
  • 创建表空间、新增用户、给用户赋予DBA权限 、删除用户下的上有数据表
  • 欢迎大家关注民工哥个人微信公众号
  • 我这样减少了26.5M Java内存!
  • JAVA 命令行参数解析,org.apache.commons.cli的使用
  • 几款网络测试工具总结
  • CentOS7 添加路由命令
  • IDEA web项目部署运行Tomcat
  • Maven国内高速镜像
  • 如何优雅的拔盘?
  • EF 小数位的保留
  • 前端之css样式02
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • JSONP原理
  • JS变量作用域
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • node 版本过低
  • QQ浏览器x5内核的兼容性问题
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • Zsh 开发指南(第十四篇 文件读写)
  • 安装python包到指定虚拟环境
  • 初识 webpack
  • 工程优化暨babel升级小记
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 新手搭建网站的主要流程
  • const的用法,特别是用在函数前面与后面的区别
  • 阿里云ACE认证学习知识点梳理
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 透过事物看本质的能力怎么培养?
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (floyd+补集) poj 3275
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (一) storm的集群安装与配置
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .Net 8.0 新的变化
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net反混淆脱壳工具de4dot的使用
  • .Net中wcf服务生成及调用
  • .Net中的设计模式——Factory Method模式
  • .stream().map与.stream().flatMap的使用
  • ::前边啥也没有
  • :如何用SQL脚本保存存储过程返回的结果集
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思