la divisione della rosa dei venti in 16 settori l'avrei interpretata in questo modo, non so se sia corretto ma rende comunque errore di memoria 27994 programmi e 1548 memoria dinamica.
perché questo? cosa gli cambia?
const char* strBussola[16] = {"N ", "Ne", "NE", "En", "E ", "Es",
"SE", "Se", "S ", "So", "SO", "Os", "O ", "On", "NO", "No"
};
int index;
int trovaIndice(float angolo) {
int _index;
for (_index = 0; _index < 16; _index++) {
float angoloDirezione = _index * 45.0 + 11.25;
float angoloMin = angoloDirezione - 11.25;
float angoloMax = angoloDirezione + 11.25;
if (angolo >= angoloMin && angolo <= angoloMax)
return _index;
comunque non è poi troppo rilevante sapere se andando a sud est si sia più spostatati verso sud oppure verso est, giusto una prova.