Sar*_*ith 12 geometry objective-c ios
我做了一个如下的弧线.通过指定半径,起始角度,结束角度
CGContextAddArc(ctx, self.frame.size.width/2 , self.frame.size.height/2,
self.radius, 2*M_PI, 3*M_PI/2-ToRad(angle), 0);
Run Code Online (Sandbox Code Playgroud)
现在我想让拱角变圆.因此需要在两端绘制圆圈.因为我使用框架尺寸给定常数不会工作.
vol*_*tae 10
尝试将Graphics State Parameter CGContextSetLineJoin设置为round: CGContextSetLineCap(ctx, kCGLineCapRound);
这是我根据你的问题进行的研究.该方法驻留在drawRect:方法中,我编写了一个简短的方法来抽象它,以便只为方法提供参数startAngle,endAngle和radius.当然可以改进.
我从这个方法的输出中为你提供了一张图片.
- (void)drawRect:(CGRect)rect {
float startAngle = 0;
float endAngle = 60;
float radius = 50.0;
CGContextRef ctx = [self drawRoundedArcWithStartAngle:startAngle endAngle:endAngle radius:radius];
CGContextStrokePath(ctx);
}
- (CGContextRef)drawRoundedArcWithStartAngle:(float)startAngle endAngle:(float)endAngle radius:(float)radius {
CGContextRef ctx = UIGraphicsGetCurrentContext();
// [CGContextAddArc(ctx, self.frame.size.width/2 , self.frame.size.height/2, radius, 2*M_PI, 3*M_PI/2-(angle * M_PI / 180), 0)];
CGContextAddArc(ctx, self.frame.size.width/ 2, self.frame.size.height/2, radius, (startAngle * M_PI / 180), (endAngle * M_PI / 180), 0);
CGContextSetRGBStrokeColor(ctx, 0.0, 0.0, 0.0, 1.0);
CGContextSetLineWidth(ctx, 20.0f);
CGContextSetLineCap(ctx, kCGLineCapRound);
return ctx;
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |