如何在圆圈顶部开始和结束路径?
How to start & end a path at top of the circle?
给定以下代码:
let startAngle: CGFloat = CGFloat( (3 * M_PI) / 2 )
let endAngle:CGFloat = CGFloat( (3 * M_PI) / 2 )
let path = UIBezierPath(arcCenter: theCenter, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true).CGPath
知道这就是 iOS 画圆的方式:
我必须指定什么才能在顶部 (12:00) 开始我的圆并在 90 度结束它?如果我想在 0 处开始和结束,我会分别将开始和结束设置为 0 和 2π。
您需要从 -π/2
到 3π/2
(顺时针方向)。
您不能像您在问题中尝试的那样从 3π/2
转到 3π/2
,因为 iOS 会认为 与 [=28] 相同=] angle - 因此不会生成任何圆弧。因此,您需要使用 3π/2
(-π/2
) 的负表示。
虽然注意单位圆是连续的。因此 3π/2
到 7π/2
是一个有效的范围。
还要注意单位圆的正角方向其实是逆时针方向。 iOS 随着坐标系的 y 轴翻转,以顺时针方向进行。
给定以下代码:
let startAngle: CGFloat = CGFloat( (3 * M_PI) / 2 )
let endAngle:CGFloat = CGFloat( (3 * M_PI) / 2 )
let path = UIBezierPath(arcCenter: theCenter, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true).CGPath
知道这就是 iOS 画圆的方式:
我必须指定什么才能在顶部 (12:00) 开始我的圆并在 90 度结束它?如果我想在 0 处开始和结束,我会分别将开始和结束设置为 0 和 2π。
您需要从 -π/2
到 3π/2
(顺时针方向)。
您不能像您在问题中尝试的那样从 3π/2
转到 3π/2
,因为 iOS 会认为 与 [=28] 相同=] angle - 因此不会生成任何圆弧。因此,您需要使用 3π/2
(-π/2
) 的负表示。
虽然注意单位圆是连续的。因此 3π/2
到 7π/2
是一个有效的范围。
还要注意单位圆的正角方向其实是逆时针方向。 iOS 随着坐标系的 y 轴翻转,以顺时针方向进行。