Originariamente inviato da MItaly
Metodo rozzo: calcola le distanze ab ac e bc con la formula di cui sopra. Se ab≈ac+bc allora i tre punti sono allineati, altrimenti la differenza tra ac+bc e ab è il costo aggiuntivo del passaggio per c.
Ho scoperto che esiste una misura, l'azimut, che dice dato un punto di partenza ed uno di destinazione in che direzione è la destinazione rispetto al punto:
http://it.wikipedia.org/wiki/Azimut
A questo punto, per far scegliere alla nave una rotta più rettilinea possibile utilizziamo proprio questa misura. Per capire invece la distanza usiamo quella misura di qualche post fa (in gradi).
Mi è stato dato un sorgente di matlab dove vi era proprio questa funzione dell'azimut:
codice:
function az = greatcircleaz(lat1,lon1,lat2,lon2)
% Inputs LAT1, LON1, LAT2, LON2 are in units of radians.
az = atan2(cos(lat2) .* sin(lon2-lon1),...
cos(lat1) .* sin(lat2) - sin(lat1) .* cos(lat2) .* cos(lon2-lon1));
% Azimuths are undefined at the poles, so we choose a convention: zero at
% the north pole and pi at the south pole.
az(lat1 <= -pi/2) = 0;
az(lat2 >= pi/2) = 0;
az(lat2 <= -pi/2) = pi;
az(lat1 >= pi/2) = pi;
Hai mai visto qualcosa del genere? Dato che non ho mai fatto matlab (ma scilab) i tre puntini servono solo per andare a capo? e .* invece che cosa significa?