定义具有角度和直径的CGPoint

时间:2013-04-07 15:45:54

标签: ios iphone core-graphics

我相信有些人可以很简单地回答并帮助我。

我在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);

我想要的是定义2个CGPoints of arc。 这是使图像更清晰的图像。

enter image description here

1 个答案:

答案 0 :(得分:10)

圆角为r且角度为a的圆上的一个点(其中a从圆的最右边点开始测量,具有以下坐标:

x = r*cos(a) + center.x
y = r*sin(a) + center.y