贝塞尔曲线简单使用-绘制八卦

贝塞尔曲线简单使用-绘制八卦_第1张图片
效果图

最近学习画图,这个算是笔记了。基本就是绘制圆弧。

-(void)drawRect:(CGRect)rect

{

CGPoint center = self.center;

/*

贝塞尔曲线画圆

参数一:center        圆心

参数二:radius        半径

参数三:startAngle    圆的起点(整圆是0到2*M_PI,圆的起点在最右侧,即0和2*M_PI都是最右侧的点)

参数四:endAngle      圆的终点(起点为0,终点为M_PI,说明是画半圆)

参数五:clockwise    是否顺时钟画圆

*/

//画下半部分的大圆

UIBezierPath *blackBezier = [UIBezierPath bezierPathWithArcCenter:self.center radius:100 startAngle:0 endAngle:M_PI clockwise:YES];

//顺着大圆的终点,画下半部分的半个小圆

[blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:50 startAngle:M_PI endAngle:0 clockwise:NO];

//顺着小圆的终点,继续画上半部分的半个小圆,刚好与大圆的起点重合

[blackBezier addArcWithCenter:CGPointMake(center.x+50, center.y) radius:50 startAngle:M_PI endAngle:2*M_PI clockwise:YES];

//将画笔移动到小黑圆的起点。(如果不移动画笔,直接画圆,图形将自动添加一条从当前点(画笔停留的点)到小黑圆起点的直线)

//可以尝试注释掉这一句,查看效果

[blackBezier moveToPoint:CGPointMake(center.x-30, center.y)];

//画黑色的小圆

[blackBezier addArcWithCenter:CGPointMake(center.x-50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];

//设置线条宽度

blackBezier.lineWidth = 3;

//设置颜色

[[UIColor blackColor] set];

//对bezier进行填充

[blackBezier fill];

//对上面设置的路径进行绘制

[blackBezier stroke];

//重新创建一个bezier曲线,blackBezier的样式是填充色和线条颜色都为black

//新建的whiteBezier没有填充色,线条色为黑色,与上面样式不同,所以需要重新创建bezier曲线

UIBezierPath *wihteBezier = [UIBezierPath bezierPathWithArcCenter:center radius:100 startAngle:0 endAngle:2*M_PI clockwise:NO];

wihteBezier.lineWidth = 3;

[wihteBezier stroke];

//创建一个填充色为白色的bezier曲线,进行绘制

UIBezierPath *whiteBezier = [UIBezierPath bezierPathWithArcCenter:CGPointMake(center.x+50, center.y) radius:20 startAngle:0 endAngle:2*M_PI clockwise:YES];

whiteBezier.lineWidth = 3;

[[UIColor whiteColor] set];

[whiteBezier fill];

}


贝塞尔曲线简单使用-绘制八卦_第2张图片
不移动画笔,会添加直线的效果

你可能感兴趣的:(贝塞尔曲线简单使用-绘制八卦)