貝塞爾曲線簡單使用-繪制八卦

效果圖

最近學習畫圖,這個算是筆記了?;揪褪抢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];

}


不移動畫筆,會添加直線的效果
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容