[分享]iOS開發-CGContextRef畫圖小結

ShevaKuilin發表於2016-03-02
 CGContextRef context = UIGraphicsGetCurrentContext(); //設定上下文
//畫一條線
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);//線條顏色
CGContextSetLineWidth(context, 5.0);//線條寬度
CGContextMoveToPoint(context, 20, 20); //開始畫線, x,y 為開始點的座標
CGContextAddLineToPoint(context, 300, 20);//畫直線, x,y 為線條結束點的座標
CGContextStrokePath(context); //開始畫線

//繪製貝茲曲線
//貝茲曲線是通過移動一個起始點,然後通過兩個控制點,還有一箇中止點,呼叫CGContextAddCurveToPoint() 函式繪製
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 10, 10);
CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);
CGContextStrokePath(context);



 //繪製連續的曲線
CGContextSetLineWidth(context, 5.0);
CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);
CGContextMoveToPoint(context, 230, 150);//開始畫線, x,y 為開始點的座標
CGContextAddCurveToPoint(context, 310, 100, 300, 200, 220, 220);//畫三次點曲線
CGContextAddCurveToPoint(context, 290, 140, 280, 180, 240, 190);//畫三次點曲線

CGContextStrokePath(context);//開始畫線


//繪製虛線
CGContextSetRGBStrokeColor(context, 0.1, 0.2, 0.3, 1);//線條顏色
float dashArray1[] = {3, 2};
CGContextSetLineDash(context, 0, dashArray1, 2);//畫虛線,可參考http://blog.csdn.net/zhangao0086/article/details/7234859
CGContextMoveToPoint(context, 5, 70);//開始畫線, x,y 為開始點的座標
CGContextAddLineToPoint(context, 310, 70);//畫直線, x,y 為線條結束點的座標
CGContextStrokePath(context);//開始畫線


//繪製虛曲線
CGContextSetRGBStrokeColor(context, 0.3, 0.2, 0.1, 1);//線條顏色
float dashArray2[] = {3, 2, 10};
CGContextSetLineDash(context, 0, dashArray2, 3);//畫虛線
CGContextMoveToPoint(context, 5, 90);//開始畫線, x,y 為開始點的座標
CGContextAddCurveToPoint(context, 200, 50, 100, 400, 300, 400);
CGContextStrokePath(context);//開始畫線


//繪製連續的曲線
CGContextSetLineWidth(context, 5.0);
float dashArray3[] = {3, 2, 10, 20, 5};
CGContextSetLineDash(context, 0, dashArray3, 5);//畫虛線
CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor);
CGContextMoveToPoint(context, 5, 400);//開始畫線, x,y 為開始點的座標
CGContextAddCurveToPoint(context, 50, 200, 80, 300, 100, 220);//畫三次點曲線
CGContextAddQuadCurveToPoint(context, 150, 100, 200, 200);//畫二次點曲線
CGContextAddCurveToPoint(context, 240, 400, 10, 50, 300, 300);//畫三次點曲線
CGContextStrokePath(context);//開始畫線




//畫一個方形圖形 沒有邊框
CGContextSetRGBFillColor(context, 0, 0.25, 0, 0.5); //方框的填充色
CGContextFillRect(context, CGRectMake(5, 150, 100, 100)); //畫一個方框


//畫弧線
CGContextSetRGBStrokeColor(context, 0.3, 0.4, 0.5, 1);//線條顏色
CGContextAddArc(context, 180, 200, 50, 0, 180*(M_PI/180), 0);

CGContextStrokePath(context);//開始畫線

//畫方形邊框
CGContextRef context5 = UIGraphicsGetCurrentContext(); //設定上下文
CGContextSetLineWidth(context5, 3.0);
CGContextSetRGBStrokeColor(context5, 0.8, 0.1, 0.8, 1);
CGContextStrokeRect(context5, CGRectMake(5, 5, 300, 400));//畫方形邊框, 引數2:方形的座標。

//畫橢圓
CGRect aRect= CGRectMake(80, 80, 160, 100);
CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);
CGContextSetLineWidth(context, 3.0);
CGContextAddEllipseInRect(context, aRect); //橢圓, 引數2:橢圓的座標。
CGContextDrawPath(context, kCGPathStroke);

//畫實心圓
CGContextFillEllipseInRect(context, CGRectMake(95, 195, 200.0, 100));//畫實心圓,引數2:圓座標。可以是橢圓

//畫一個菱形
CGContextSetLineWidth(context, 2.0);
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 100, 200);
CGContextAddLineToPoint(context, 50, 150);
CGContextAddLineToPoint(context, 100, 100);
CGContextStrokePath(context);

//填充了一段路徑:
CGContextMoveToPoint(context, 100, 100);
CGContextAddLineToPoint(context, 150, 150);
CGContextAddLineToPoint(context, 100, 200);
CGContextAddLineToPoint(context, 50, 150);
CGContextAddLineToPoint(context, 100, 100);
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
CGContextFillPath(context);

分享來源:
http://blog.sina.com.cn/s/blo…

相關文章