为数学角度提供了一个抽象。因为角度是一种类型,所以可以避免或在编译时捕获以下错误:
支持便捷的初始化器、运算符和函数,以实现自然、快速且高效的工作流程。
您可以使用以下方式导入此模块
import DLAngle
let degree = Degree(rawValue: 90.0)
let zeroDegrees = Degree()
let radian = Radian(rawValue: Double.pi / 2)
let zeroRadians = Radian()
从角度(度)到弧度
let degree = Degree(rawValue: 90.0)
let radian = Radian(degree: degree)
从弧度到角度(度)
let radian = Radian(rawValue: Double.pi)
let degree = Degree(radian: radian)
加法
let radian = Radian(degrees: 90.0)
radian += Radian(degress: 45.0)
// radian.rawValue = 3 * Double.pi / 4
减法
var degrees = Degree(radians: Double.pi / 2)
degrees = degrees - Degree(radians: Double.pi / 6)
// degrees.rawValue = 60.0
乘法
let half = Radian(rawValue: Double.pi / 2)
let pi = one * 2
// '2 * one' works as well
除法
let pi = Radian(rawValue: Double.pi)
let sixtyDegreesRadian = one / 3
// '1 / pi' works as well
let degree = Degree(rawValue: 750.0)
degree.normalize()
// degree.rawValue = 30.0
let angle1 = Radian(rawvalue: 7 * Double.pi)
let angle2 = angle1.normalized()
// angle2.rawValue = Double.pi
let angle1 = Radian(rawValue: Double.pi)
let angle2 = Radian(degrees: 180.0)
angle1 == angle2 // true
let angle1 = Radian(rawValue: Double.pi)
let angle2 = Radian(degrees: 90.0)
angle1 < angle2 // false
let angleMeasurement = Measurement<UnitAngle>(value: 45.0, unit: .degrees)
let radian = Radian(measurement: angleMeasurement)
radian.measurement // Measurement<UnitAngle>(value: Double.pi / 4, unit: .radians)
let degrees = Degrees(measurement: angleMeasurement)
degrees.measurement // Measurement<UnitAngle>(value: 45.0, unit: .degrees)
反函数通过使用弧度类型的便捷构造函数提供。
do {
let angle = try Radian(acos: -1.0)
} catch {
// handle error
}
let angle = Radian(degrees: 45.0)
if let sin: Double = try? angle.sin() {
// use computed sine value
}
常用的弧度角具有常量
let pi = Radian.pi
let half_quadrant_II = Radian.pi_2 + Radian.pi_4
github "davidlivadaru/DLAngle"
如果只需要在单个操作系统上使用该框架,建议在执行 carthage update
时使用 --platform [iOS|macOS|watchOS|tvOS]
说明符。
在您的 Podfile
中添加依赖项。
pod 'DLAngle'
在您的 Package.swift
中添加以下依赖项
dependencies: [
.package(url: "https://github.com/davidlivadaru/DLAngle.git", .upToNextMajor(from: "1.0.0"))
]
并更新您的目标的依赖项
targets: [
.target(
name: "YourTargetName",
dependencies: ["DLAngle"])),
]
模块已经过单元测试覆盖,但是错误总是会遗漏。 如果您在模块中发现错误,请创建一个 issue。
如果您想为修复错误或实现新功能做出贡献,请创建一个 pull request。
DLAngle 在 MIT 许可下发布。 有关详细信息,请参见 LICENSE。