28 lines
609 B
Swift
28 lines
609 B
Swift
func angleDifference(a1: Double, a2: Double) -> Double {
|
|
let diff = (a2 - a1).truncatingRemainder(dividingBy: 360)
|
|
|
|
if diff < -180.0 {
|
|
return 360.0 + diff
|
|
} else if diff > 180.0 {
|
|
return -360.0 + diff
|
|
} else {
|
|
return diff
|
|
}
|
|
}
|
|
|
|
let testCases = [
|
|
(20.0, 45.0),
|
|
(-45, 45),
|
|
(-85, 90),
|
|
(-95, 90),
|
|
(-45, 125),
|
|
(-45, 145),
|
|
(29.4803, -88.6381),
|
|
(-78.3251, -159.036),
|
|
(-70099.74233810938, 29840.67437876723),
|
|
(-165313.6666297357, 33693.9894517456),
|
|
(1174.8380510598456, -154146.66490124757),
|
|
(60175.77306795546, 42213.07192354373)
|
|
]
|
|
|
|
print(testCases.map(angleDifference))
|