/*
0° → North
45° → North-East
90° → East
135° → South-East
180° → South
225° → South-West
270° → West
315° → North-West
*/
function degreesToDirection(float $degrees): string {
// Normalize degrees to (0, 360)
$degrees = fmod(($degrees + 360), 360);
// Define compass directions
$directions = [
"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];
}
$degrees = 120;
echo "For $degrees degrees, Compass direction: " . degreesToDirection($degrees);
/*
run:
For 120 degrees, Compass direction: South-East
*/