31 lines
635 B
Go
31 lines
635 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"math"
|
|
)
|
|
|
|
var testCases = []struct{ b1, b2 float64 }{
|
|
{20, 45},
|
|
{-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},
|
|
}
|
|
|
|
func main() {
|
|
for _, tc := range testCases {
|
|
fmt.Println(angleDifference(tc.b2, tc.b1))
|
|
}
|
|
}
|
|
|
|
func angleDifference(b2, b1 float64) float64 {
|
|
return math.Mod(math.Mod(b2-b1, 360)+360+180, 360) - 180
|
|
}
|