问题描述
- 根据角度和直径定义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 的弧度,如下图的效果:
解决方案
在半径为r的圆中,角度为a的点数有下面的坐标:
其中a是从圆的最右侧点开始测量。
x = r*cos(a) + center.x
y = r*sin(a) + center.y
解决方案二:
一个直径为1200毫米高为250毫米的碟形封头能装多少升水,
时间: 2024-09-29 07:59:23