2 lantianyiming lantianyiming 于 2013.04.08 10:05 提问

根据角度和直径定义CGPoint

在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 的弧度,如下图的效果:

CSDN移动问答

2个回答

redCoral_
redCoral_   2013.04.08 16:16
已采纳

在半径为r的圆中,角度为a的点数有下面的坐标:
其中a是从圆的最右侧点开始测量。

x = r*cos(a) + center.x
y = r*sin(a) + center.y
weixin_29692385
weixin_29692385   2015.07.09 21:14

一个直径为1200毫米高为250毫米的碟形封头能装多少升水,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!