深入理解UIBezierPath畫圓弧addArcWithCenter


UIBezierPath畫圓弧的方法

- (void)addArcWithCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise NS_AVAILABLE_IOS(4_0);

方法中各參數(shù)的意義:

  • center 圓心的坐標
  • radius 圓的半徑
  • startAngle 起始的弧度
  • endAngle:結(jié)束的弧度
  • clockwise:YES為順時針吟税,No為逆時針

以上五個參數(shù)优幸,除了startAngle钧舌、endAngle會不清楚怎么設(shè)置栋猖,其他都比較容易理解,下面我們針對這兩個參數(shù)做一些講解,如果有其他三個參數(shù)不太清楚的,可以聯(lián)系我火惊,不過應(yīng)該沒有吧,= =

如何設(shè)置startAngle奔垦、endAngle

1.startAngle屹耐、endAngle是弧度,不是角度(知道的直接跳到2)

iOS提供以下幾種表示方式:

// 一個半圓的弧度椿猎,即180°
#define M_PI        3.14159265358979323846264338327950288   /* pi             */
// 90°
#define M_PI_2      1.57079632679489661923132169163975144   /* pi/2           */
// 45°
#define M_PI_4      0.785398163397448309615660845819875721  /* pi/4           */

用上面提供的宏表示任何度數(shù)綽綽有余惶岭,比如表示135°:
0.75 * M_PI
或者1.5 * M_PI_2
....

2.弧度的起點,僅針對這個API
3.弧度的表示

從0°的點開始順時針數(shù)算是正方向的角度犯眠,用正數(shù)表示
從0°的點開始逆時針數(shù)算是反方向的角度俗他,用負數(shù)表示
所以,在圓上的一個角度阔逼,可以同時有兩種表示方法,順時針方向數(shù)一種地沮,逆時針方向數(shù)一種嗜浮,講到這里先別慌,我們現(xiàn)在只要知道怎么在圓上表示一個弧度就行摩疑。

不管怎么表示危融,我們只要知道這個弧度在圓的什么位置上
4.如何設(shè)置startAngleendAngle

舉個栗子雷袋,我現(xiàn)在要用UIBezierPath畫一個如下圖所示的圖形:

要繪制的圖形

分析步驟如下:
4.1 確定center吉殃、radius
4.2 確定弧度的起點、弧度的終點

弧度的起點楷怒、終點

4.3 用弧度表示弧度的起點蛋勺、弧度的終點
即用startAngleendAngle表示弧度的起點鸠删、弧度的終點
弧度的起點 - startAngle: 0.25 * M_PI 或 -1.75 * M_PI
弧度的終點 - endAngle: 0.5 * M_PI 或 -1.5 * M_PI

4.4 確定clockwise抱完,這一步是決定你的弧長怎么樣的關(guān)鍵
如果設(shè)為YES,圓弧會從弧度的起點沿著順時針方向畫弧刃泡,遇到弧度的終點停止巧娱,結(jié)果如下:

順時針

如果設(shè)為NO,圓弧會從弧度的起點沿著逆時針方向畫弧烘贴,遇到弧度的終點停止禁添,結(jié)果如下:

逆時針

所以startAngleendAngle只是表示出起點和終點桨踪,至于線會怎么畫老翘,決定于clockwise

下面附上源碼:

    CGPoint line_start = CGPointMake(0, 30);
    CGPoint line_end = CGPointMake(100, 30);
    CGPoint circle_center = CGPointMake(85, 15);
    
    UIBezierPath *path = [UIBezierPath bezierPath];
    [path moveToPoint:line_start];
    [path addLineToPoint:line_end];
    
    // 注意線畫到這里其實只畫了一條直線,但是調(diào)用addArcWithCenter方法路徑會自動連線到圓弧的起點
    [path addArcWithCenter:circle_center radius:10 startAngle:0.25 * M_PI endAngle:- 1.5 * M_PI clockwise:NO];
    
    CAShapeLayer *shapeLayer=[CAShapeLayer layer];
    shapeLayer.path = path.CGPath;
    shapeLayer.fillColor = [UIColor clearColor].CGColor;//填充顏色
    shapeLayer.strokeColor = [UIColor blackColor].CGColor;//邊框顏色
    shapeLayer.lineCap = @"round";
    [self.layer addSublayer:shapeLayer];

效果如下:

IMG_3129.PNG

總結(jié)

<p>

花了一上午才寫完酪捡,不知道寫的清不清楚叁征,希望對你能有幫助,另外記得順手點贊~

致謝

http://www.bubuko.com/infodetail-1031393.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逛薇,一起剝皮案震驚了整個濱河市捺疼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌永罚,老刑警劉巖啤呼,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異呢袱,居然都是意外死亡官扣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門羞福,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惕蹄,“玉大人,你說我怎么就攤上這事治专÷袅辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵张峰,是天一觀的道長泪蔫。 經(jīng)常有香客問我,道長喘批,這世上最難降的妖魔是什么撩荣? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮饶深,結(jié)果婚禮上餐曹,老公的妹妹穿的比我還像新娘。我一直安慰自己敌厘,他們只是感情好凸主,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著额湘,像睡著了一般卿吐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锋华,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天嗡官,我揣著相機與錄音,去河邊找鬼毯焕。 笑死衍腥,一個胖子當(dāng)著我的面吹牛磺樱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婆咸,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼竹捉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尚骄?” 一聲冷哼從身側(cè)響起块差,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎倔丈,沒想到半個月后憨闰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡需五,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年鹉动,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宏邮。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡泽示,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蜜氨,到底是詐尸還是另有隱情边琉,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布记劝,位于F島的核電站,受9級特大地震影響族扰,放射性物質(zhì)發(fā)生泄漏厌丑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一渔呵、第九天 我趴在偏房一處隱蔽的房頂上張望怒竿。 院中可真熱鬧,春花似錦扩氢、人聲如沸耕驰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朦肘。三九已至,卻和暖如春双饥,著一層夾襖步出監(jiān)牢的瞬間媒抠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工咏花, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留趴生,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像苍匆,于是被迫代替她去往敵國和親刘急。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容