Curtis L. Olson writes:
>
>One thing I've noticed (from the magic carpet mode) is that if you
>call geo_direct_wgs_84() with zero distance and zero direction
>(i.e. zero velocity) you don't get *exactly* the starting lat/lon back
>because of numerical precision issues. This is not a big deal at
>higher velocities, but is a problem at very slow velocities.
Good Point
lets see 1.0e-6 degrees should be close enough for 'government work'
a minute is 2000 meters and there are 60 minutes in a degree so
1.0*e-6 degrees is around 10 cm
so I guess one could always check
somthing like
my_geo_direct( &new_lat, &new_lon, lat, lon. dir, dist )
static double old_lat = 1000;
static double old_lon = 1000;
#define CLOSE_ENOUGH 1.0e-6
if( fabs(old_lat-lat) < CLOSE_ENOUGH &&
fabs(old_lon-lon) < CLOSE_ENOUGH ) {
geo_direct_wgs_84(new_lat, new_lon,,,, lat, lon)
} else {
new_lat = lat;
new_lon = lon;
}
old_lat = new_lat;
old_lon = new_lon;
....
}
FWIW for those who want REAL ACCURATE placement at small
scale I ALWAYS reccommend doing everything in XYZ on a local
plane then converting your positions into 'spherical space'.
This will work for distances of up to 'several' miles with no noticeable
loss in accuracy due to differences between chord and arc distance
Now how small is epsilon ?
Norman
_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel