您的位置:首页 > 移动开发 > IOS开发

【深入浅出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);  

}  

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  绘图