iphone畫圓弧或扇形
?
?
核心函數:
?
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 //畫的方向(1=順時針,0=逆時針) );
?
?
關于角度與弧度的轉換關系代碼:
?
#define PI 3.14159265358979323846 static inline float radians(double degrees) { return degrees * PI / 180; }?
?
示例代碼:
//設置矩形填充顏色:紅色 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=50;//圓心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=150;//圓心x坐標 startY=50;//圓心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);?
?
???
圖中:
(1)為逆時針畫扇形:角度0°-60°
(2)為順時針畫扇形:角度0°-60°
?
?
關于角度的定義:(參見下圖)
?
?
紅點為圓心,圓心右邊綠線表示的角度為0°,往下繞紅心順時針開始依次為1°、2°、3°、...、360°。
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
