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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

