How to convert a degree to a compass direction in Python

1 Answer

0 votes
"""
0°   → North
45°  → North-East
90°  → East
135° → South-East
180° → South
225° → South-West
270° → West
315° → North-West
"""

import math

def degrees_to_direction(degrees: float) -> str:
    # Normalize degrees to [0, 360)
    degrees = math.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]


if __name__ == "__main__":
    degrees = 120
    print(f"For {degrees} degrees, Compass direction: {degrees_to_direction(degrees)}")



'''
run:

For 120 degrees, Compass direction: South-East

'''

 



answered 18 hours ago by avibootz
edited 11 hours ago by avibootz
...