在drawRect
中定义了一个圆,下面的代码是用来定义圆的弧度。
CGFloat width = rect.size.width-rect.origin.x;
CGFloat height = rect.size.height-rect.origin.y;
CGFloat xPos = rect.origin.x;
CGFloat yPos = rect.origin.y;
CGFloat arcStake = (width * 2) * 0.25;
CGFloat radius = height/2;
CGPoint centre = CGPointMake(xPos+width/2, yPos+height/2);
CGFloat angle = acos(arcStake/(2*radius));
CGFloat startAng = radians(180) + angle;
CGFloat endAng = radians(360) - angle;
// Define 2 CGPoints of arc
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, centre.x, centre.y, radius, startAng, endAng, 0);
CGPathAddLineToPoint(path, NULL, xPos+width/2, yPos+height/2);
CGPathCloseSubpath(path);
定义两个CGPoints 的弧度,如下图的效果:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在半径为r的圆中,角度为a的点数有下面的坐标:
其中a是从圆的最右侧点开始测量。
x = r*cos(a) + center.x
y = r*sin(a) + center.y