【深入浅出IOS开发】绘制一个小黄人
来源:互联网 发布:哔哩哔哩没有mac版吗 编辑:程序博客网 时间:2024/05/01 19:59
①首先绘制一个身体
绘制身体的时候要分上中下三段,先设置坐标和长度,然后带入相应的函数中。
一般圆形和弧形用圆心设置
②绘制一个人的嘴型
绘制嘴的时候要点是:通过贝塞尔曲线CGContextAddQuadCurveToPoint绘制。
贝塞尔曲线分三个点:起始点,控制点,结束点
我们通过控制点来约束起始点(CGContextMoveToPoint),和结束点。
- //绘制身体
- void drawBody(CGContextRef ctr,CGRect rect)
- {
- //绘制上半身
- CGFloat topX = rect.size.width*0.5;
- CGFloat topY = 200;
- CGFloat topRadius = 70;
- CGContextAddArc(ctr, topX , topY, topRadius, 0, M_PI, 1);
- //绘制中间
- CGFloat midX = topX - topRadius;
- CGFloat midY = 100;
- CGContextAddLineToPoint(ctr, midX, topY + midY);
- //绘制下半身
- CGFloat endX = topX;
- CGFloat endY = midY + topY;
- CGFloat endRadius = topRadius;
- CGContextAddArc(ctr, endX, endY, endRadius, M_PI, 0, 1);
- //设置颜色
- [[UIColor yellowColor]set];
- //闭合路径
- CGContextClosePath(ctr);
- CGContextFillPath(ctr);
- }
- //画脸
- void drawMouse(CGContextRef ctr,CGRect rect)
- {
- //控制点
- CGFloat controlX = rect.size.width*0.5;
- CGFloat controlY = 300;
- //左右和上下移动间距
- CGFloat moveX = 30;
- CGFloat moveY = 15;
- //开始点
- CGFloat startX = controlX - moveX;
- CGFloat startY = controlY - moveY;
- CGContextMoveToPoint(ctr, startX, startY);
- //结束点
- CGFloat endX = controlX + moveX;
- CGFloat endY = controlY - moveY;
- //设置颜色
- [[UIColor blackColor]set];
- //通过贝塞尔曲线绘制嘴型
- CGContextAddQuadCurveToPoint(ctr, controlX, controlY, endX, endY);
- CGContextStrokePath(ctr);
- }
0 0
- 【深入浅出IOS开发】绘制一个小黄人
- 【深入浅出IOS开发】绘制一个小黄人
- 【深入浅出IOS开发】绘制图片
- 【深入浅出IOS开发】绘制文字
- 【深入浅出IOS开发】绘制图片
- 【深入浅出IOS开发】绘制图片
- 【深入浅出IOS开发】绘制文字
- 【深入浅出IOS开发】使用路径进行绘制图形
- 【深入浅出IOS开发】使用路径进行绘制图形
- iOS开发 - Quartz2D绘制小黄人
- iOS开发 - Quartz2D绘制小黄人
- 【深入浅出ios开发】NSNotificationCenter
- 【深入浅出ios开发】UIActionSheet
- 【深入浅出ios开发】NSNotificationCenter
- 【深入浅出ios开发】UIActionSheet
- iOS 开发 AVPlayer 深入浅出
- 【iOS】iOS绘制一个UIView
- ios开发图形绘制
- 【深入浅出IOS开发】绘制文字
- 自定义控件
- 将Cstring 转换成 const char *
- 元组和列表可以互相转化
- luci界面实现web端和移动端的不同风格
- 【深入浅出IOS开发】绘制一个小黄人
- hdu 4003 Find Metal Mineral (树形dp+背包)
- VBA 学习文章
- 把war包放到Tomcat安装目录下,不能直接访问的解决方案
- 配置logback将日志输出到文件
- configure.ac (configure.in)
- 修改Dialog属性后监听不到onBackPress事件
- android混淆编译 ---- 问题汇总
- 【深入浅出IOS开发】图形上下文栈