如何在 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
我有 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