我参考了这个example
我想从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);
目前
要求从6点钟而不是3点钟这样画
答案 0 :(得分: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
修改第1行如下:
CGContextAddArc(ctx, self.frame.size.width/2, self.frame.size.height/2, radius, -M_PI/2, ToRad(270), 0);
注意:最终路径的实际方向取决于图形上下文的当前变换矩阵。