我有目标c申请。在ViewController中我有一个UIView,在这个视图中我用UIBezierPath绘制了一个带有这段代码的圆圈:
CAShapeLayer* clockWiseLayer = [[CAShapeLayer alloc] init];
clockWiseLayer.path = [UIBezierPath bezierPathWithArcCenter:centerPoint
radius:radius
startAngle:startAngle
endAngle:endAngle
clockwise:YES].CGPath;
然后我想要知道点到部分的中心或半径的中心到部件弧的中心是这样的:
我怎样才能明白这一点?如果我知道结束,角度开始,半径大小该点的值是什么,我该如何计算?
答案 0 :(得分:3)
所有这些只是一些基本的三角函数。
首先得到弧心的角度:
normalEnd = endAngle < startAngle ? endAngle + 2 * pi : endAngle
centerAngle = startAngle + (normalEnd - startAngle) / 2
然后计算弧心相对于中心点的x和y坐标:
arcCenterX = centerPoint.x + cos(centerAngle) * radius
arcCenterY = centerPoint.y + sin(centerAngle) * radius
现在您有一个线段的终点,并且您想要该线段的中心:
desiredPointX = (centerPoint.x + arcCenterX) / 2
desiredPointY = (centerPoint.y + arcCenterY) / 2