利用CoreGraphics画小黄人

简单的利用

CoreGraphics

画一个小黄人

话不多说,全在代码里面,挺简单的一个东西

///画身体
void drawBody(CGContextRef context,CGRect rect)
{
    ///设置颜色
    [[UIColor yellowColor] set];

    CGFloat startX = 100;
    CGFloat startY = 120;
    ///将画笔移动到指定位置
    CGContextMoveToPoint(context, startX, startY);

    CGFloat circleUpX = startX + r;
    CGFloat circleUpY = startY;
    ///画弧,参数分别为图形上下文,圆心x,圆心y,半径,起始弧度,终止弧度,方向(1是顺时针,0是逆时针)
    CGContextAddArc(context, circleUpX, circleUpY, r, 0, M_PI, 1);

    CGFloat lineX = circleUpX +r;
    CGFloat lineY = circleUpY;
    ///划线
    CGContextAddLineToPoint(context, lineX, lineY);

    CGFloat circleDownX = lineX - r;
    CGFloat circleDownY = lineY + r;
    CGContextAddArc(context, circleDownX, circleDownY, r, 0, M_PI, 0);

    ///合并线条
    CGContextClosePath(context);
    ///绘制图形,并填充颜色
    CGContextFillPath(context);
}
///画嘴巴
void drawMouth(CGContextRef context,CGRect rect)
{
    CGFloat mouthStartX = 150;
    CGFloat mouthStartY = 250;
    CGContextMoveToPoint(context, mouthStartX, mouthStartY);

    CGFloat mouthEndX = 250;
    CGFloat mouthEndY = 250;
    CGFloat controlX = 200;
    CGFloat controlY = 270;
    ///画贝塞尔曲线,参数分别为图形上下文,控制点x。控制点y,结束点x,结束点y(一个控制点)
    ///两个控制点的方法为CGContextAddCurveToPoint
    CGContextAddQuadCurveToPoint(context, controlX, controlY, mouthEndX, mouthEndY);
    ///设置颜色
    CGContextSetRGBStrokeColor(context, 0, 0, 0, 1);
    ///设置线宽
    CGContextSetLineWidth(context, 2);
    ///绘图但只画边框
    CGContextStrokePath(context);

}
///画眼睛
void drawEyy(CGContextRef context,CGRect rect)
{
    CGFloat startX = 100;
    CGFloat startY = 120;
    CGContextMoveToPoint(context, startX, startY);
    CGContextSetLineWidth(context, 15);

    CGFloat endX = 100 + r * 2;
    CGFloat endY = 120;
    CGContextAddLineToPoint(context, endX, endY);

    [[UIColor blackColor] set];

    CGContextStrokePath(context);

    CGFloat blackEyyX = startX + r;
    CGFloat blackEyyY = startY;
    CGContextAddArc(context, blackEyyX, blackEyyY, r * 0.5, 0, M_PI * 2, 1);
    CGContextFillPath(context);

    CGFloat whiteEyyX = blackEyyX;
    CGFloat whiteEyyY = blackEyyY;
    [[UIColor whiteColor] set];
    CGContextAddArc(context, whiteEyyX, whiteEyyY, r * 0.4, 0, M_PI * 2, 1);
    CGContextFillPath(context);

    CGFloat grayEyyX = blackEyyX;
    CGFloat grayEyyY = blackEyyY;
    [[UIColor grayColor] set];
    CGContextAddArc(context, grayEyyX, grayEyyY, r * 0.2, 0, M_PI * 2, 1);

    CGContextFillPath(context);

}

点击我下载源代码

时间: 2024-10-18 01:32:10

利用CoreGraphics画小黄人的相关文章

【推荐】纯CSS3画出小黄人并实现动画效果

前言 前两天我刚发布了一篇CSS3实现小黄人动画的博客,但是实现的CSS3动画是基于我在站酷网找到的一张小黄人的jpg格式图片,并自己用PS抠出需要实现动画的部分,最后才完成的动画效果.但是,其实我的初衷是想体验一下用图片做动画的赶脚,但是找不到素材,才无奈用了最笨的方法来满足自己的需求,本想勉强能看就行了.可是呢,还是抵不住自己内心的完美,于是乎,用了一个晚上用CSS3画出了小黄人再实现类似的动画效果. 正题 OK,大家看一下下面两张图有什么不同: 当然,很多人会说,明显大小不同,嘴巴,头发也

纯CSS3画出小黄人并实现动画效果

原文出处: 郭锦荣 前言 前两天我刚发布了一篇CSS3实现小黄人动画的博客,但是实现的CSS3动画是基于我在站酷网找到的一张小黄人的jpg格式图片,并自己用PS抠出需要实现动画的部分,最后才完成的动画效果.但是,其实我的初衷是想体验一下用图片做动画的赶脚,但是找不到素材,才无奈用了最笨的方法来满足自己的需求,本想勉强能看就行了.可是呢,还是抵不住自己内心的完美,于是乎,用了一个晚上用CSS3画出了小黄人再实现类似的动画效果. 正题 OK,大家看一下下面两张图有什么不同: 当然,很多人会说,明显大

iOS开发 - Quartz2D绘制小黄人

Quartz2D绘制小黄人 - (void)drawRect:(CGRect)rect { // 1.上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.身体 drawBody(ctx, rect); // 3.嘴(微笑) drawMouth(ctx, rect); // 4.画眼睛 drawEyes(ctx, rect); } /** * 眼睛 */ void drawEyes(CGContextRef ctx, CGRect

Quartz2D练习 -- 小黄人

Main.storyboard <?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5053" systemVers

css3实现小黄人

效果就像这样: 不废话,直接上代码! hrml代码: <!DOCTYPE html> <html> <head lang="zh"> <meta charset="UTF-8"> <title>纯CSS3画出小黄人并实现动画效果</title> <Link href="index.css" type="text/css" rel="styl

小黄人

宝宝今天不开心,用CSS画了个小黄人,源码如下 html部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>小黄人</title> <link rel="stylesheet" href="main.css" /> </head> &l

【二次元的CSS】—— 用 DIV + LESS 做一个小黄人构造器

仅仅使用div作为身体的布局,用css3的各种transform和圆角属性来绘制各个细节的形状,当然也不会使用任何图片哦.那就没意思了. 有的同学说,用canvas不是能画得更逼真而且更简单吗?这点我也非常赞同,但我的理由还是,那就没意思了. 这次用到了一些LESS的特性,通过设置一些指定的参数来生成不同种类.不同身材的小黄人. GitHub传送门:https://github.com/lancer07/css3Minons 效果是这个样子的 首先 先做个标准版的(ps:也就是图中的第一个小黄人

微信小程序相关三、css写小黄人

小程序上课第三天,因为今天院里有活动,所以没去上课,第四天上午又因为要召开入党转正大会,又耽误了一上午,下午去上课,要了资料.这两天讲了一些零零碎碎的东西,做的实例有上面这个小黄人 都是用的css,基本上都是用border,transform:rotate(),animation,和一些细节做的,左边的对话框那里的小尖头也是一个重点细节 下面附上代码: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=&quo

小绿人小红人和小黄人

(2016/4/14 看了昨天的锵锵三人行继续谈王小波,子东提到一个有趣的观点.路遥和王小波的对照.一个返乡农村青年为成为城市人的奋斗,一个下放青年以普通人的姿态谈自由. 两位都是我喜欢的作家.王小波更是我最喜欢的作家.子东的对照让我想起平等和自由,路遥的苦苦追求能够理解为底层人向往的平等,王小波戏谑地展示的则是一个精神贵族觉得的最可贵的东西,自由.由两者的关系又引发了以下的想象.当然,路遥追求的平等绝不是以下小红人理解的那种. ) 从前有个国家,那里的人分为两种:一种是小绿人,一种是小红人.