Così si ottiene lo stesso risultato:
float rad(float gradi)
{
return gradi/360*TWO_PI;
}
const float pi4=0.785398; // pigreco/4.
float latA = rad(42.9532);
float lonA = rad(10.68456);
float latB = rad(49.17021);
float lonB = rad(-9.7425);
float dlat= log( tan(latB/2+pi4) / tan(latA/2+pi4) );
float dlon = abs(lonA-lonB);
float direzione = atan2(dlon, dlat)/TWO_PI*360; // Direzione
void setup()
{
Serial.begin(9600);
Serial.print("Heading GPS: ");
Serial.println(360-direzione,3);
}
void loop(){}
Nota: scrivendo Serial.println(360-direzione, 3); (con ", 3") ottieni 3 decimali anziché 2.