如何将度数转换为弧度?

我正在尝试将此Obj-C代码转换为Swift代码,但我不知道该代码应该是什么?

#define DEGREES_TO_RADIANS(degrees)((M_PI * degrees)/180)

我用Google搜索并找到了这个

但是我不明白如何在Swift中转换它?

回答:

extension BinaryInteger {

var degreesToRadians: CGFloat { CGFloat(self) * .pi / 180 }

}

extension FloatingPoint {

var degreesToRadians: Self { self * .pi / 180 }

var radiansToDegrees: Self { self * 180 / .pi }

}


45.degreesToRadians         // 0.7853981633974483

Int(45).degreesToRadians // 0.7853981633974483

Int8(45).degreesToRadians // 0.7853981633974483

Int16(45).degreesToRadians // 0.7853981633974483

Int32(45).degreesToRadians // 0.7853981633974483

Int64(45).degreesToRadians // 0.7853981633974483

UInt(45).degreesToRadians // 0.7853981633974483

UInt8(45).degreesToRadians // 0.7853981633974483

UInt16(45).degreesToRadians // 0.7853981633974483

UInt32(45).degreesToRadians // 0.7853981633974483

UInt64(45).degreesToRadians // 0.7853981633974483

Double(45).degreesToRadians // 0.7853981633974483

CGFloat(45).degreesToRadians // 0.7853981633974483

Float(45).degreesToRadians // 0.7853981

Float80(45).degreesToRadians // 0.78539816339744830963

如果要使二进制整数返回浮点类型而不是始终返回CGFloat,则可以使通用方法代替计算属性:

extension BinaryInteger {

func degreesToRadians<F: FloatingPoint>() -> F { F(self) * .pi / 180 }

}


let radiansDouble: Double = 45.degreesToRadians()   // 0.7853981633974483

let radiansCGFloat: CGFloat = 45.degreesToRadians() // 0.7853981633974483

let radiansFloat: Float = 45.degreesToRadians() // 0.7853981

let radiansFloat80: Float80 = 45.degreesToRadians() // 0.78539816339744830963

以上是 如何将度数转换为弧度? 的全部内容, 来源链接: utcz.com/qa/428413.html

回到顶部