使用UIBezierPath畫一朵花

花的構成

花由四個半圓組成

UIBezierPath

- (void)drawRect:(CGRect)rect {
    // Drawing code
    CGSize size = self.bounds.size;
    CGFloat margin = 10;
    CGFloat radius = rintf(MIN(size.height-margin, size.width-margin)/4); //半徑
    CGFloat xOffset, yOffset;
    CGFloat offset = rintf((size.height-size.width)/2);
    if (offset > 0) {
        xOffset = rintf(margin/2);
        yOffset = offset;
    }
    else {
        xOffset = -offset;
        yOffset = rint(margin/2);
    }
    
  //填充顏色
    [[UIColor redColor] setFill];
  //初始化
    UIBezierPath *path = [UIBezierPath bezierPath];
    /*
    參數一:圓心
    參數二:半徑
    參數三:開始位置,弧度
    參數四:結束弧度
    參數五:yes順時針,no逆時針
    */
    [path addArcWithCenter:CGPointMake(radius*2 +xOffset, radius+yOffset) radius:radius startAngle:-M_PI endAngle:0 clockwise:YES];
    
    [path addArcWithCenter:CGPointMake(radius*3+xOffset, radius*2+yOffset) radius:radius startAngle:-M_PI_2 endAngle:M_PI_2 clockwise:YES];
    
    [path addArcWithCenter:CGPointMake(radius*2+xOffset, radius*3+yOffset) radius:radius startAngle:0 endAngle:M_PI clockwise:YES];
    
    [path addArcWithCenter:CGPointMake(radius+xOffset, radius*2+yOffset) radius:radius startAngle:M_PI_2 endAngle:-M_PI_2 clockwise:YES];
    
    [path closePath];
    //填充
    [path fill];
}
效果圖

弧度和方向分析

弧度和方向
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容