如何在 UIBezierPath 弧中获取半径的中心点?

How to get center point of radius in UIBezierPath arc?

我有 objective c 申请。在 ViewController 中,我有一个 UIView,在这个视图中,我使用以下代码用 UIBezierPath 绘制了一个圆圈:

CAShapeLayer* clockWiseLayer = [[CAShapeLayer alloc] init];
        clockWiseLayer.path = [UIBezierPath bezierPathWithArcCenter:centerPoint
                                                              radius:radius
                                                          startAngle:startAngle
                                                            endAngle:endAngle
                                                           clockwise:YES].CGPath;

然后我想知道什么是点到部分的中心或半径中心到零件圆弧的中心,如下所示:

我怎样才能得到这个点?如果我知道角度的终点、起点、半径大小,该点的值是多少,我该如何计算?

所有这些只是一些基本的三角函数。

先获取圆心的角度:

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