2013-04-25 50 views
1

i。从这个example如何绘制从6点,而不是3时开始度

refered我会想从6点,而不是3时拿捏

//Create the path 
CGContextAddArc(ctx, self.frame.size.width/2, self.frame.size.height/2, radius, 0, M_PI *2, 0); 

//Set the stroke color to black 

[[UIColor colorWithRed:241.0/255.0 green:90.0/255.0 blue:36.0/255.0 alpha:1.0]setStroke]; 

//Define line width and cap 
CGContextSetLineWidth(ctx, TB_BACKGROUND_WIDTH); 
CGContextSetLineCap(ctx, kCGLineCapButt); 

//draw it! 
//CGContextDrawPath(ctx, kCGPathFill); 
CGContextDrawPath(ctx, kCGPathStroke); 

目前 enter image description here

需要像从6点代替3-点到。 enter image description here

该图
+0

对不起@DavidRönnqvist,我是新的核心图形和数学白痴。 – Desmond 2013-04-25 08:55:08

回答

2

对于CGContextAddArc(),该方法签名是如下:

void CGContextAddArc (
    CGContextRef c, 
    CGFloat x, 
    CGFloat y, 
    CGFloat radius, 
    CGFloat startAngle, 
    CGFloat endAngle, 
    int clockwise 
); 

要修改的开始位置从6点钟到3点钟,也就是设置到startAngle -90度,这是:

angle in degree = angle in radian x 180/M_PI 

-90 = radian x 180/M_PI 
radian = -90 x M_PI/180 
radian = -M_PI/2 

修改一号线如下:

CGContextAddArc(ctx, self.frame.size.width/2, self.frame.size.height/2, radius, -M_PI/2, ToRad(270), 0); 

注意:最终路径的实际方向取决于图形上下文的当前转换矩阵。

+0

谢谢@Shivan,谢谢你......我是一名数学白痴 – Desmond 2013-04-25 08:54:26

+0

我在3点到6点之间发送它不再填满了吗?我错过了什么? – Desmond 2013-04-25 09:01:24

+0

现在都好,我把结束角度从0改为270 CGContextAddArc(imageCtx,self.frame.size.width/2,self.frame.size.height/2,radius,-M_PI/2,ToRad(self。 startAngle),270); – Desmond 2013-04-25 09:08:12

相关问题