CoreGraphics學習

摘要:
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];
	
}

效果如圖:

相關文章
相關標籤/搜索