package main
import (
"fmt"
"math"
)
/*
0° → North
45° → North-East
90° → East
135° → South-East
180° → South
225° → South-West
270° → West
315° → North-West
*/
// degreesToDirection converts degrees into a compass direction.
func degreesToDirection(degrees float64) string {
// Normalize degrees to [0, 360)
degrees = math.Mod(degrees+360, 360)
// Define compass directions
directions := []string{
"North", "North-East", "East", "South-East",
"South", "South-West", "West", "North-West",
}
// Each direction covers 45 degrees
index := int((degrees + 22.5) / 45) % 8
// Alternative: index := int((degrees/45) + 0.5) % 8
return directions[index]
}
func main() {
degrees := 120.0
fmt.Printf("For %.0f degrees, Compass direction: %s\n", degrees, degreesToDirection(degrees))
}
/*
run:
For 120 degrees, Compass direction: South-East
*/