ios 扇形 按钮_iOS 画圆弧或扇形
核心函數:
CGContextAddArc
Adds an arc of a circle to the current path, possibly preceded by a straight line segment
void CGContextAddArc (
CGContextRef c, //圖形上下文
CGFloat x,//圓心x坐標
CGFloat y,//圓心y坐標
CGFloat radius,//圓半徑
CGFloat startAngle,//開始的弧度
CGFloat endAngle,//結束的弧度
int clockwise //畫的方向(0=順時針,1=逆時針)
);
關于角度與弧度的轉換關系代碼:
#define radians(degrees) (degrees)*M_PI/180.0f
畫扇形并生成圖片
//支持retina高分截屏的關鍵
if(UIGraphicsBeginImageContextWithOptions != NULL){
UIGraphicsBeginImageContextWithOptions(frame.size, NO, 0.0);
} else {
UIGraphicsBeginImageContext(frame.size);
}
CGContextRef context = UIGraphicsGetCurrentContext();
//設置矩形填充顏色:紅色
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0);
//設置畫筆顏色:黑色
CGContextSetRGBStrokeColor(context, 0, 0, 0, 1);
//設置畫筆線條粗細
CGContextSetLineWidth(context, 0.6);
//扇形參數
double radius=40; //半徑
int startX=50; //圓心x坐標
int startY=100; //圓心y坐標
double pieStart=0; //起始的角度
double pieCapacity=60; //角度增量值
int clockwise=0; //0=順時針,1=逆時針
//順時針畫扇形
CGContextMoveToPoint(context, startX, startY);
CGContextAddArc(context, startX, startY, radius, radians(pieStart), radians(pieStart+pieCapacity), clockwise);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathEOFillStroke);
//扇形參數
startX=200; //圓心x坐標
startY=100; //圓心y坐標
pieStart=0; //起始的角度
pieCapacity=60; //角度增量值
clockwise=1; //0=順時針,1=逆時針
//逆時針畫扇形
CGContextMoveToPoint(context, startX, startY);
CGContextAddArc(context, startX, startY, radius, radians(pieStart), radians(pieStart+pieCapacity), clockwise);
CGContextClosePath(context);
CGContextDrawPath(context, kCGPathEOFillStroke);
//生成圖片
UIImage *resImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
圖中:
(1)為順時針畫扇形:角度0° ---> ?60°
(2)為逆時針畫扇形:角度0° ---> ?60°
關于角度的定義:(參見下圖)
紅點為圓心,圓心右邊綠線表示的角度為0°,往下繞紅心順時針開始依次為1°、2°、3°、...、360°。
總結
以上是生活随笔為你收集整理的ios 扇形 按钮_iOS 画圆弧或扇形的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用matlab软件打开一幅图片并且分别
- 下一篇: 解决 Linux 系统,出现“不在sud