//5.画扇形 -(void)drawArc:(CGContextRef)contextRef { //圆心点---少句代码 // CGContextMoveToPoint(contextRef, 100, 100); /** * 画扇形 * * @param c#> 作用域 description#> * @param x#> 圆心x坐标 description#> * @param y#> 圆心y坐标 description#> * @param radius#> 半径 description#> * @param startAngle#> 开始角度 description#> * @param endAngle#> 结束角度 description#> * @param clockwise#> 方向(默认是顺时针0,1是逆时针) description#> * * @return 扇形 */ // CGContextAddArc(contextRef, 100, 100, 50, 0, 45*M_PI/180, 10); // CGContextAddLineToPoint (contextRef, 100, 100); // CGContextFillPath(contextRef); CGContextMoveToPoint(contextRef, 150, 150); CGContextAddArc(contextRef, 150, 150, 100, 0, 270*M_PI/180, 1); CGContextSetFillColorWithColor(contextRef, [UIColor purpleColor].CGColor); CGContextFillPath(contextRef); CGContextMoveToPoint(contextRef, 150, 150); CGContextAddArc(contextRef, 150, 150, 100, 0,120*M_PI/180, 0); CGContextSetFillColorWithColor(contextRef, [UIColor orangeColor].CGColor); CGContextFillPath(contextRef); CGContextMoveToPoint(contextRef, 150, 150); CGContextAddArc(contextRef, 150, 150, 100, 120*M_PI/180, 270*M_PI/180, 0); CGContextSetFillColorWithColor(contextRef, [UIColor blueColor].CGColor); CGContextFillPath(contextRef); } //4.画圆 -(void)drawCircle:(CGContextRef)contextRef{ //在矩形里面画椭圆(即 矩形内切圆) CGContextAddEllipseInRect(contextRef, CGRectMake(50, 50, 100, 100)); CGContextFillPath(contextRef); } //3.画矩形 -(void)drawRectWithContext:(CGContextRef)contextRef{ //矩形框 CGContextAddRect(contextRef, CGRectMake(100, 100, 100, 100)); //空心(画线的轨迹) CGContextStrokePath(contextRef); //实心(显示填充) CGContextFillPath(contextRef); //同时显示线框和填充 CGContextDrawPath(contextRef, kCGPathFillStroke); //以上三种渲染方式只能使用一种,如果都写了,只执行先写的那一种 } -(void)drawLine:(CGContextRef)contextRef{ //起点 路径的设置 CGContextMoveToPoint(contextRef, 20, 100); //终点 CGContextAddLineToPoint(contextRef, 200, 200); //设置宽度 CGContextSetLineWidth(contextRef, 25); //设置颜色 CGContextSetRGBStrokeColor(contextRef, 1, 0, 1, 1); CGContextSetStrokeColorWithColor(contextRef, [UIColor blueColor].CGColor); //设置线的风格 CGContextSetLineCap(contextRef, kCGLineCapButt); //画虚线 /** * <#Description#> * * @param contextRef 作用域 * @param phase#> 起点的左移量 * @param lengths#> 规定实心和虚心的长度 * @param count#> 实心和虚心的循环次数(count必须等于lengths数组的长度) * * @return 虚线 */ CGFloat lengths[] = {10,10}; CGContextSetLineDash(contextRef, 0, lengths, 2); //画上来 将图形绘制到View上面(渲染) CGContextStrokePath(contextRef); } -(void)drawTriangle:(CGContextRef)contextRef{ CGContextMoveToPoint(contextRef, 0, 0); CGContextAddLineToPoint(contextRef, 100, 100); //如果连续添加多条线 他会把上一条线的终点作为自己的起点(实现直线) CGContextAddLineToPoint(contextRef, 150, 80); CGContextSetLineWidth(contextRef, 10); //折现角的风格样式 CGContextSetLineJoin(contextRef,kCGLineJoinRound); //CGContextAddLineToPoint(contextRef, 0, 0); //连接起点和终点封起来 CGContextClosePath(contextRef); CGContextSetStrokeColorWithColor(contextRef, [UIColor redColor].CGColor); //针对图形的填充方式,选择对应的状态进行设置 CGContextSetFillColorWithColor(contextRef, [UIColor yellowColor].CGColor); //绘制空心的图形 //CGContextStrokePath(contextRef); //绘制实心的图形 CGContextFillPath(contextRef); } -(void)drawBike:(CGContextRef)contextRef { //前轮 CGContextAddEllipseInRect(contextRef, CGRectMake(50, 300, 100, 100)); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //后轮 CGContextAddEllipseInRect(contextRef, CGRectMake(250, 300, 100, 100)); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //链条后轮 CGContextAddEllipseInRect(contextRef, CGRectMake(290, 340, 20, 20)); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //链条前轮 CGContextAddEllipseInRect(contextRef, CGRectMake(200, 330, 40, 40)); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //链条 //起点 路径的设置 CGContextMoveToPoint(contextRef, 220, 330); //终点 CGContextAddLineToPoint(contextRef, 300, 340); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //起点 路径的设置 CGContextMoveToPoint(contextRef, 220, 370); //终点 CGContextAddLineToPoint(contextRef, 300, 360); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //车架 //起点 路径的设置 CGContextMoveToPoint(contextRef, 100, 350); //终点 CGContextAddLineToPoint(contextRef, 123, 230); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //起点 路径的设置 CGContextMoveToPoint(contextRef, 220, 330); //终点 //CGContextAddLineToPoint(contextRef, 120, 250); CGContextAddLineToPoint(contextRef, 240, 240); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //车梁 //起点 路径的设置 CGContextMoveToPoint(contextRef, 120, 250); //终点 //CGContextAddLineToPoint(contextRef, 120, 250); CGContextAddLineToPoint(contextRef, 252, 250); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //起点 路径的设置 CGContextMoveToPoint(contextRef, 250, 250); //终点 //CGContextAddLineToPoint(contextRef, 120, 250); CGContextAddLineToPoint(contextRef, 300, 350); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //车座 CGContextMoveToPoint(contextRef, 200, 230); CGContextAddLineToPoint(contextRef, 250, 242); //如果连续添加多条线 他会把上一条线的终点作为自己的起点(实现直线) CGContextAddLineToPoint(contextRef, 250, 230); CGContextSetLineWidth(contextRef, 5); CGContextClosePath(contextRef); //折现角的风格样式 CGContextSetLineJoin(contextRef,kCGLineJoinRound); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //画曲线 //CGContextMoveToPoint(contextRef, 150, 150); CGContextAddArc(contextRef, 100, 350, 70, -0.5, 280*M_PI/180, 1); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); CGContextAddArc(contextRef, 250, 250, 111, 2.05, 2.5, 0); CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //车把 CGContextAddArc(contextRef, 160, 170, 70, 1.7, 2.5, 0); CGContextSetLineWidth(contextRef, 5); CGContextSetLineCap(contextRef, kCGLineCapRound); CGContextStrokePath(contextRef); //脚蹬下 CGContextMoveToPoint(contextRef, 220, 350); //终点 CGContextAddLineToPoint(contextRef, 230, 380); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); CGContextMoveToPoint(contextRef, 220, 380); //终点 CGContextAddLineToPoint(contextRef, 240, 380); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); //脚蹬上 CGContextMoveToPoint(contextRef, 210, 332); //终点 CGContextAddLineToPoint(contextRef, 200, 310); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); CGContextMoveToPoint(contextRef, 190, 310); //终点 CGContextAddLineToPoint(contextRef, 210, 310); //画上来 将图形绘制到View上面(渲染) CGContextSetLineWidth(contextRef, 5); CGContextStrokePath(contextRef); } @end