问题描述
在练习Canvas时,下面的cos代码报错:
let secondEnd = CGPoint(
x: center.x + cos(secondAngle.radians) * radius,
y: center.y + sin(secondAngle.radians) * radius
)
问题原因为:cos 的问题通常与输入类型不匹配有关。在 Swift 中,cos 函数是标准库中的数学函数,只接受 Double 类型的参数。如果传入的参数不是明确的 Double 类型(例如 CGFloat),就会出现 “Ambiguous use of ‘cos’” 报错。
修复方法
确保传递给 cos 的角度值是 Double 类型。Angle.radians 的类型是 CGFloat,需要显式转换为 Double。
修改代码
将 secondAngle.radians 转换为 Double:
let secondEnd = CGPoint(
x: center.x + cos(Double(secondAngle.radians)) * radius,
y: center.y + sin(Double(secondAngle.radians)) * radius
)