iphone畫圓弧或扇形
?
?
核心函數(shù):
?
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坐標(biāo) CGFloat y,//圓心y坐標(biāo) CGFloat radius,//圓半徑 CGFloat startAngle,//開始的弧度 CGFloat endAngle,//結(jié)束的弧度 int clockwise //畫的方向(1=順時(shí)針,0=逆時(shí)針) );
?
?
關(guān)于角度與弧度的轉(zhuǎn)換關(guān)系代碼:
?
#define PI 3.14159265358979323846 static inline float radians(double degrees) { return degrees * PI / 180; }?
?
示例代碼:
//設(shè)置矩形填充顏色:紅色 CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0); //設(shè)置畫筆顏色:黑色 CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); //設(shè)置畫筆線條粗細(xì) CGContextSetLineWidth(context, 0.6); //扇形參數(shù) double radius=40;//半徑 int startX=50;//圓心x坐標(biāo) int startY=50;//圓心y坐標(biāo) double pieStart=0;//起始的角度 double pieCapacity=60;//角度增量值 int clockwise=0;//0=逆時(shí)針,1=順時(shí)針 //逆時(shí)針畫扇形 CGContextMoveToPoint(context, startX, startY); CGContextAddArc(context, startX, startY, radius, radians(pieStart), radians(pieStart+pieCapacity), clockwise); CGContextClosePath(context); CGContextDrawPath(context, kCGPathEOFillStroke); //扇形參數(shù) startX=150;//圓心x坐標(biāo) startY=50;//圓心y坐標(biāo) pieStart=0;//起始的角度 pieCapacity=60;//角度增量值 clockwise=1;//0=逆時(shí)針,1=順時(shí)針 //順時(shí)針畫扇形 CGContextMoveToPoint(context, startX, startY); CGContextAddArc(context, startX, startY, radius, radians(pieStart), radians(pieStart+pieCapacity), clockwise); CGContextClosePath(context); CGContextDrawPath(context, kCGPathEOFillStroke);?
?
???
圖中:
(1)為逆時(shí)針畫扇形:角度0°-60°
(2)為順時(shí)針畫扇形:角度0°-60°
?
?
關(guān)于角度的定義:(參見下圖)
?
?
紅點(diǎn)為圓心,圓心右邊綠線表示的角度為0°,往下繞紅心順時(shí)針開始依次為1°、2°、3°、...、360°。
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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