【深入浅出IOS开发】绘制一个小黄人
2015-03-31 09:10
204 查看
①首先绘制一个身体
绘制身体的时候要分上中下三段,先设置坐标和长度,然后带入相应的函数中。
一般圆形和弧形用圆心设置
②绘制一个人的嘴型
绘制嘴的时候要点是:通过贝塞尔曲线CGContextAddQuadCurveToPoint绘制。
贝塞尔曲线分三个点:起始点,控制点,结束点
我们通过控制点来约束起始点(CGContextMoveToPoint),和结束点。
[objc] view
plaincopy
//绘制身体
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);
}
绘制身体的时候要分上中下三段,先设置坐标和长度,然后带入相应的函数中。
一般圆形和弧形用圆心设置
②绘制一个人的嘴型
绘制嘴的时候要点是:通过贝塞尔曲线CGContextAddQuadCurveToPoint绘制。
贝塞尔曲线分三个点:起始点,控制点,结束点
我们通过控制点来约束起始点(CGContextMoveToPoint),和结束点。
[objc] view
plaincopy
//绘制身体
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);
}
相关文章推荐
- 【深入浅出IOS开发】绘制一个小黄人
- 【深入浅出IOS开发】使用路径进行绘制图形
- iOS开发之Quartz 2D绘制小黄人
- 【深入浅出IOS开发】使用路径进行绘制图形
- 【深入浅出IOS开发】绘制图片
- iOS开发 - Quartz2D绘制小黄人
- 【深入浅出IOS开发】绘制图片
- 【深入浅出IOS开发】绘制文字
- iOS开发UI篇—Quartz2D复杂图形绘制(三) 图片文字,进度条,饼形图,小黄人
- 【深入浅出IOS开发】Xcode 6如何创建一个空的Empty Application
- iOS开发 - Quartz2D绘制小黄人
- 【深入浅出IOS开发】绘制图片
- 【深入浅出IOS开发】Xcode 6如何创建一个空的Empty Application
- 【深入浅出IOS开发】绘制文字
- 开发一个iOS应用没有那么容易
- Android OpenGL ES 开发教程(22):绘制一个球体
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(三)——搭建Android开发环境,用Hibernate生成Android项目的Model层
- iOS开发之在地图上绘制出你运动的轨迹
- ios开发笔记-循环调用/执行一个方法
- Android OpenGL ES 开发教程(22):绘制一个球体