/*
0° → North
45° → North-East
90° → East
135° → South-East
180° → South
225° → South-West
270° → West
315° → North-West
*/
// degrees_to_direction converts degrees into a compass direction.
fn degrees_to_direction(degrees: f64) -> &'static str {
// Normalize degrees to (0, 360)
let degrees = (degrees + 360.0) % 360.0;
// Define compass directions
let directions = [
"North", "North-East", "East", "South-East",
"South", "South-West", "West", "North-West",
];
// Each direction covers 45 degrees
let index = (((degrees + 22.5) / 45.0) as usize) % 8;
// Alternative: let index = (((degrees / 45.0) + 0.5) as usize) % 8;
directions[index]
}
fn main() {
let degrees = 120.0;
println!(
"For {} degrees, Compass direction: {}",
degrees,
degrees_to_direction(degrees)
);
}
/*
run:
For 120 degrees, Compass direction: South-East
*/