如何将度数转换为弧度?

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


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

我用Google搜索并找到了这个


但是我不知道如何在Swift中转换它?


繁花不似锦
浏览 1722回答 3
3回答

弑天下

Xcode 10•Swift 4.2或更高版本extension BinaryInteger {    var degreesToRadians: CGFloat { return CGFloat(self) * .pi / 180 }}extension FloatingPoint {    var degreesToRadians: Self { return self * .pi / 180 }    var radiansToDegrees: Self { return self * 180 / .pi }}操场45.degreesToRadians         // 0.785398163397448Int(45).degreesToRadians    // 0.785398163397448Int8(45).degreesToRadians   // 0.785398163397448Int16(45).degreesToRadians  // 0.785398163397448Int32(45).degreesToRadians  // 0.785398163397448Int64(45).degreesToRadians  // 0.785398163397448UInt(45).degreesToRadians   // 0.785398163397448UInt8(45).degreesToRadians  // 0.785398163397448UInt16(45).degreesToRadians // 0.785398163397448UInt32(45).degreesToRadians // 0.785398163397448UInt64(45).degreesToRadians // 0.785398163397448Double(45).degreesToRadians    // 0.7853981633974483CGFloat(45).degreesToRadians   // 0.785398163397448Float(45).degreesToRadians     // 0.7853981Float80(45).degreesToRadians   // 0.785398163397448278999

千巷猫影

这与您的要求不同,但是在Swift 3 / iOS 10中,您可以使用Measurement类型并执行转换而无需知道公式!let result = Measurement(value: 45, unit: UnitAngle.degrees)    .converted(to: .radians).value

慕运维8079593

let angle = 45° // angle will be in radians, 45 is in degrees在Swift 3下编译。仍然保留所有值,使用CGFloats以弧度形式进行所有计算...,但是使用度常数可以使代码更具可读性。例如:90 °°符号将神奇地完成度到弧度的转换。如何设置:为°符号定义并使用后缀运算符。该运算符将进行度到弧度的转换。本示例适用于Ints,如果需要,还可以将它们扩展为Float类型。postfix operator °protocol IntegerInitializable: ExpressibleByIntegerLiteral {  init (_: Int)}extension Int: IntegerInitializable {  postfix public static func °(lhs: Int) -> CGFloat {    return CGFloat(lhs) * .pi / 180  }}一些用法示例:let angle = 45°contentView.transform = CGAffineTransform(rotationAngle: 45°)let angle = 45contentView.transform = CGAffineTransform(rotationAngle: angle°)警告!两次使用此转换太容易了(错误地使用已经以弧度表示的值),结果将得到非常小的数字,而且看起来生成的角度将始终为零...请勿在同一角度上使用°值两次(不要两次转换)!:// OBVIOUSLY WRONG!let angle = 45°° // ° used twice here// WRONG! BUT EASY TO MISSlet angle = 45° // ° used herecontentView.transform = CGAffineTransform(rotationAngle: angle°) // ° also used here
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS