
最近學習畫圖,這個算是筆記了?;揪褪抢L制圓弧。
-(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];
//順著小圓的終點,繼續(xù)畫上半部分的半個小圓,剛好與大圓的起點重合
[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];
//重新創(chuàng)建一個bezier曲線,blackBezier的樣式是填充色和線條顏色都為black
//新建的whiteBezier沒有填充色,線條色為黑色,與上面樣式不同,所以需要重新創(chuàng)建bezier曲線
UIBezierPath *wihteBezier = [UIBezierPath bezierPathWithArcCenter:center radius:100 startAngle:0 endAngle:2*M_PI clockwise:NO];
wihteBezier.lineWidth = 3;
[wihteBezier stroke];
//創(chuàng)建一個填充色為白色的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];
}
