There is an interesting forum thread at
http://www.virtualregatta.com/forums/viewtopic.php?f=35&t=11678
The guy studied how VR algorithm moves boats in regattas.
(zedstar http://www.virtualregatta.com/forums/memberlist.php?mode=viewprofile&u=1560205)
To me there are 3 possibilities:
1- Move boats using flat trigonometry.
2- Move boats using spherical trigonometry (Great Circle formulas).
3- Move boats using an ellipsoid model (such as WGS84).
Number 3 probably gives the results closest to the real thing
(since gps devices give wgs84 coords)
This calculation can be done using Vincenty formulas. Check this site:
http://www.movable-type.co.uk/scripts/latlong-vincenty-direct.html
Needless to say, the formula is big and slow to calculate.
I tried to check the differences between the results of the 3.
Let's say our boat is sailing at 20 knts. In 10 minutes it sails a distance=6.17 km.
for lat1=0, lon1=0
Course=0 --> GC= 0°03.33'N / 0°-0.00'W | flat= 0°03.33'N / 0°-0.00'W | vincenty dest= 0°03.35'N / 0°00.00'W - flat-vinc=34.63 m | flat-sphe=0.002 m
Course=45 --> GC= 0°02.35'N / 0°02.35'E | flat= 0°02.35'N / 0°02.35'E | vincenty dest= 0°02.37'N / 0°02.35'E - flat-vinc=24.96 m | flat-sphe=0 m
Course=90 --> GC= 0°00.00'N / 0°03.33'E | flat= 0°00.00'N / 0°03.33'E | vincenty dest= 0°00.00'N / 0°03.33'E - flat-vinc=6.90 m | flat-sphe=0 m
for lat1=45N, lon1=0
Course=0 --> GC=45°03.33'N / 0°-0.00'W | flat=45°03.33'N / 0°-0.00'W | vincenty dest=45°03.33'N / 0°00.00'W - flat-vinc=3.47 m | flat-sphe=0.002 m
Course=45 --> GC=45°02.35'N / 0°03.33'E | flat=45°02.35'N / 0°03.33'E | vincenty dest=45°02.35'N / 0°03.32'E - flat-vinc=9.25 m | flat-sphe=3.34 m
Course=90 --> GC=44°60.00'N / 0°04.71'E | flat=45°00.00'N / 0°04.71'E | vincenty dest=44°60.00'N / 0°04.70'E - flat-vinc=17.48 m | flat-sphe=2.98 m
for lat1=80N , lon1=0
Course=0 --> GC=80°03.33'N / 0°-0.00'W | flat=80°03.33'N / 0°-0.00'W | vincenty dest=80°03.32'N / 0°00.00'W - flat-vinc=25.70 m | flat-sphe=0 m
Course=45 --> GC=80°02.35'N / 0°13.61'E | flat=80°02.35'N / 0°13.56'E | vincenty dest=80°02.34'N / 0°13.55'E - flat-vinc=26.69 m | flat-sphe=18.93 m
Course=90 --> GC=79°59.99'N / 0°19.17'E | flat=80°00.00'N / 0°19.17'E | vincenty dest=79°59.99'N / 0°19.09'E - flat-vinc=31.80 m | flat-sphe=16.94 m
The larger difference between the 3 formulas seems to be around 34 m (0.55% in 6.17 km)
Pretty small. Note that flat to spherical differences are even smaller.
So it doesn't make much difference which formulas you use..