基本线条绘制(曲线)(熟悉)

1.画矩形

(void)drawOvalIn
矩形的rect设置为宽高相等,画出来的为正方形,如图

基本线条绘制(曲线)(熟悉)_第1张图片
Paste_Image.png

2.椭圆

(void)drawRect

椭圆的rect设置为宽高相等,画出来的为圆形,如图

基本线条绘制(曲线)(熟悉)_第2张图片
Paste_Image.png
基本线条绘制(曲线)(熟悉)_第3张图片
Paste_Image.png

需要注意的是用椭形画○起点如图所示,而弧形设置的点为中心点

3.画弧形

(vdrawArcCenter:(CGRect)rect
bezierPathWithArcCenter的几个参数,如下

1.ArcCenter 中心点
2.radius 半径
3.startAngle开始的弧度
这个点位起点,即0点

基本线条绘制(曲线)(熟悉)_第4张图片
Paste_Image.png

4.endAngle 结束的弧度
5.clockwise YES顺时针,NO逆时针
6.CAShapeLayer

基本线条绘制(曲线)(熟悉)_第5张图片
Paste_Image.png

环形图代码如下

//画弧形
- (void)drawArcCenter:(CGRect)rect{
//    ArcCenter 中心点
//    radius    半径
//    startAngle开始的弧度
//    endAngle  结束的弧度
//    clockwise YES顺时针,NO逆时针
    
    CAShapeLayer * shapeLayer = [CAShapeLayer layer];
    
    CGPoint arcCenter = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5);
    CGFloat radius = 50;
    CGFloat startAngle = 0;
    CGFloat endAngle = M_PI_2 * 4;
    BOOL    clockwise = YES;
    UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:radius startAngle:startAngle endAngle:endAngle clockwise:clockwise];
//    [[UIColor redColor] set];
//    [path addLineToPoint:arcCenter];
//    [path closePath];
    
    shapeLayer.fillColor = [UIColor clearColor].CGColor;
    shapeLayer.strokeColor = [UIColor redColor].CGColor;
    shapeLayer.path = path.CGPath;
    shapeLayer.lineWidth = 30;
    [self.layer addSublayer:shapeLayer];
//    [path stroke];

}

全部代码如下

//
//  drawView.m
//  02-基本线条绘制(形状)(熟悉)
//
//  Created by 李亮 on 2016/11/30.
//  Copyright © 2016年 www.thelast.com. All rights reserved.
//

#import "drawView.h"

@implementation drawView

- (void)drawRect:(CGRect)rect{
    [self drawArcCenter:rect];
//    [self drawOvalIn];
//    [self drawRect];
}
//画弧形
- (void)drawArcCenter:(CGRect)rect{
//    ArcCenter 中心点
//    radius    半径
//    startAngle开始的弧度
//    endAngle  结束的弧度
//    clockwise YES顺时针,NO逆时针
    
    CAShapeLayer * shapeLayer = [CAShapeLayer layer];
    
    CGPoint arcCenter = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5);
    CGFloat radius = 50;
    CGFloat startAngle = 0;
    CGFloat endAngle = M_PI_2;
    BOOL    clockwise = YES;
    UIBezierPath * path = [UIBezierPath bezierPathWithArcCenter:arcCenter radius:radius startAngle:startAngle endAngle:endAngle clockwise:clockwise];
//    [[UIColor redColor] set];
//    [path addLineToPoint:arcCenter];
//    [path closePath];
    
//    shapeLayer.fillColor = [UIColor redColor].CGColor;
    shapeLayer.strokeColor = [UIColor redColor].CGColor;
    shapeLayer.path = path.CGPath;
    shapeLayer.lineWidth = 30;
    [self.layer addSublayer:shapeLayer];
    
    
//    [path stroke];

}

//画矩形
- (void)drawRect{
    
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGRect rect = CGRectMake(50, 50, 100, 100);
    
    UIBezierPath * path = [UIBezierPath bezierPathWithRect:rect];
    [[UIColor redColor] set];
    CGContextAddPath(ctx, path.CGPath);
    CGContextStrokePath(ctx);
}
//椭圆
- (void)drawOvalIn{
    
    CGRect rect = CGRectMake(50, 50, 100, 50);

    UIBezierPath * path = [UIBezierPath bezierPathWithOvalInRect:rect];
    
    [[UIColor redColor] set];
    [path stroke];
}
@end

你可能感兴趣的:(基本线条绘制(曲线)(熟悉))