/*
0° → North
45° → North-East
90° → East
135° → South-East
180° → South
225° → South-West
270° → West
315° → North-West
*/
#include <iostream>
#include <string>
#include <vector>
#include <cmath>
std::string degreesToDirection(double degrees) {
// Normalize degrees to (0, 360)
degrees = fmod((degrees + 360), 360);
// Define compass directions
std::vector<std::string> directions = {
"North", "North-East", "East", "South-East",
"South", "South-West", "West", "North-West"
};
// Each direction covers 45 degrees
int index = static_cast<int>((degrees + 22.5) / 45) % 8;
//int index = static_cast<int>((degrees / 45) + .5) % 8;
return directions[index];
}
int main() {
double degrees = 120;
std::cout << "For " << degrees << " degrees, Compass direction: " << degreesToDirection(degrees);
}
/*
run:
For 120 degrees, Compass direction: South-East
*/