摘要:
CoreGraphics的功能很是強大,能夠繪製各類圖形;今天學習一下怎麼繪製簡單的點線面,記錄學習。 學習
1、導入coreGraphics.framework網站
2、繪製圖形圖片
一、繪製矩形ip
// 繪製矩形 - (void)drawRectangle { // 定義矩形的rect CGRect rectangle = CGRectMake(100, 290, 120, 25); // 獲取當前圖形,視圖推入堆棧的圖形,至關於你所要繪製圖形的圖紙 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 在當前路徑下添加一個矩形路徑 CGContextAddRect(ctx, rectangle); // 設置試圖的當前填充色 CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor); // 繪製當前路徑區域 CGContextFillPath(ctx); }
二、繪製橢圓it
// 繪製橢圓 - (void)drawEllipse { // 獲取當前圖形,視圖推入堆棧的圖形,至關於你所要繪製圖形的圖紙 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 定義其rect CGRect rectangle = CGRectMake(10, 100, 300, 280); // 在當前路徑下添加一個橢圓路徑 CGContextAddEllipseInRect(ctx, rectangle); // 設置當前視圖填充色 CGContextSetFillColorWithColor(ctx, [UIColor orangeColor].CGColor); // 繪製當前路徑區域 CGContextFillPath(ctx); }
三、繪製三角形float
// 繪製三角形 - (void)drawTriangle { // 獲取當前圖形,視圖推入堆棧的圖形,至關於你所要繪製圖形的圖紙 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 建立一個新的空圖形路徑。 CGContextBeginPath(ctx); /** * @brief 在指定點開始一個新的子路徑 參數按順序說明 * * @param c 當前圖形 * @param x 指定點的x座標值 * @param y 指定點的y座標值 * */ CGContextMoveToPoint(ctx, 160, 220); /** * @brief 在當前點追加直線段,參數說明與上面同樣 */ CGContextAddLineToPoint(ctx, 190, 260); CGContextAddLineToPoint(ctx, 130, 260); // 關閉並終止當前路徑的子路徑,並在當前點和子路徑的起點之間追加一條線 CGContextClosePath(ctx); // 設置當前視圖填充色 CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor); // 繪製當前路徑區域 CGContextFillPath(ctx); }
四、繪製曲線im
// 繪製曲線 - (void)drawCurve { // 獲取當前圖形,視圖推入堆棧的圖形,至關於你所要繪製圖形的圖紙 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 建立一個新的空圖形路徑。 CGContextBeginPath(ctx); /** * @brief 在指定點開始一個新的子路徑 參數按順序說明 * * @param c 當前圖形 * @param x 指定點的x座標值 * @param y 指定點的y座標值 * */ CGContextMoveToPoint(ctx, 160, 100); /** * @brief 在指定點追加二次貝塞爾曲線,經過控制點和結束點指定曲線。 * 關於曲線的點的控制見下圖說明,圖片來源蘋果官方網站。參數按順序說明 * @param c 當前圖形 * @param cpx 曲線控制點的x座標 * @param cpy 曲線控制點的y座標 * @param x 指定點的x座標值 * @param y 指定點的y座標值 * */ CGContextAddQuadCurveToPoint(ctx, 160, 50, 190, 50); // 設置圖形的線寬 CGContextSetLineWidth(ctx, 20); // 設置圖形描邊顏色 CGContextSetStrokeColorWithColor(ctx, [UIColor brownColor].CGColor); // 根據當前路徑,寬度及顏色繪製線 CGContextStrokePath(ctx); }
曲線描繪示意圖img
五、繪製圓形di
//以指定中心點繪製圓弧 - (void)drawCircleAtX:(float)x Y:(float)y { // 獲取當前圖形,視圖推入堆棧的圖形,至關於你所要繪製圖形的圖紙 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 建立一個新的空圖形路徑。 CGContextSetFillColorWithColor(ctx, [UIColor blackColor].CGColor); /** * @brief 在當前路徑添加圓弧 參數按順序說明 * * @param c 當前圖形 * @param x 圓弧的中心點座標x * @param y 曲線控制點的y座標 * @param radius 指定點的x座標值 * @param startAngle 弧的起點與正X軸的夾角, * @param endAngle 弧的終點與正X軸的夾角 * @param clockwise 指定1建立一個順時針的圓弧,或是指定0建立一個逆時針圓弧 * */ CGContextAddArc(ctx, x, y, 20, 0, 2 * M_PI, 1); //繪製當前路徑區域 CGContextFillPath(ctx); }
3、在drawRect中調用co
- (void)drawRect:(CGRect)rect { // 繪製橢圓 [self drawEllipse]; // 繪製三角 [self drawTriangle]; // 繪製矩形 [self drawRectangle]; // 繪製曲線 [self drawCurve]; // 繪製圓形 [self drawCircleAtX:120 Y:170]; [self drawCircleAtX:200 Y:170]; }
效果如圖: