Rewrote sidereal_course with simpler parameters.
This commit is contained in:
parent
aaa7174002
commit
2b706a6528
1 changed files with 13 additions and 12 deletions
|
@ -178,7 +178,7 @@ double cal_mjd (int mn, double dy, int yr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// given an mjd, return greenwich mean siderial time, gst
|
// given an mjd, return greenwich mean sidereal time, gst
|
||||||
|
|
||||||
double utc_gst (double mjd) {
|
double utc_gst (double mjd) {
|
||||||
double gst;
|
double gst;
|
||||||
|
@ -322,10 +322,13 @@ time_t get_start_gmt(int year) {
|
||||||
|
|
||||||
|
|
||||||
// return a courser but cheaper estimate of sidereal time
|
// return a courser but cheaper estimate of sidereal time
|
||||||
double sidereal_course(struct tm *gmt, time_t now, double lng) {
|
double sidereal_course(fgTIME *t, double lng) {
|
||||||
time_t start_gmt;
|
struct tm *gmt;
|
||||||
|
time_t start_gmt, now;
|
||||||
double diff, part, days, hours, lst;
|
double diff, part, days, hours, lst;
|
||||||
|
|
||||||
|
gmt = t->gmt;
|
||||||
|
now = t->cur_time;
|
||||||
start_gmt = get_start_gmt(gmt->tm_year);
|
start_gmt = get_start_gmt(gmt->tm_year);
|
||||||
|
|
||||||
fgPrintf(FG_EVENT, FG_DEBUG,
|
fgPrintf(FG_EVENT, FG_DEBUG,
|
||||||
|
@ -403,19 +406,14 @@ void fgTimeUpdate(fgFLIGHT *f, fgTIME *t) {
|
||||||
// calculation to get the difference.
|
// calculation to get the difference.
|
||||||
fgPrintf( FG_EVENT, FG_INFO, " First time, doing precise gst\n");
|
fgPrintf( FG_EVENT, FG_INFO, " First time, doing precise gst\n");
|
||||||
t->gst = gst_precise = sidereal_precise(t->mjd, 0.00);
|
t->gst = gst_precise = sidereal_precise(t->mjd, 0.00);
|
||||||
gst_course = sidereal_course(t->gmt, t->cur_time, 0.00);
|
gst_course = sidereal_course(t, 0.00);
|
||||||
t->gst_diff = gst_precise - gst_course;
|
t->gst_diff = gst_precise - gst_course;
|
||||||
|
|
||||||
t->lst =
|
t->lst = sidereal_course(t, -(FG_Longitude * RAD_TO_DEG)) + t->gst_diff;
|
||||||
sidereal_course(t->gmt, t->cur_time, -(FG_Longitude * RAD_TO_DEG))
|
|
||||||
+ t->gst_diff;
|
|
||||||
} else {
|
} else {
|
||||||
// course + difference should drift off very slowly
|
// course + difference should drift off very slowly
|
||||||
t->gst =
|
t->gst = sidereal_course(t, 0.00) + t->gst_diff;
|
||||||
sidereal_course(t->gmt, t->cur_time, 0.00) + t->gst_diff;
|
t->lst = sidereal_course(t, -(FG_Longitude * RAD_TO_DEG)) + t->gst_diff;
|
||||||
t->lst =
|
|
||||||
sidereal_course(t->gmt, t->cur_time, -(FG_Longitude * RAD_TO_DEG))
|
|
||||||
+ t->gst_diff;
|
|
||||||
}
|
}
|
||||||
fgPrintf( FG_EVENT, FG_DEBUG,
|
fgPrintf( FG_EVENT, FG_DEBUG,
|
||||||
" Current lon=0.00 Sidereal Time = %.3f\n", t->gst);
|
" Current lon=0.00 Sidereal Time = %.3f\n", t->gst);
|
||||||
|
@ -427,6 +425,9 @@ void fgTimeUpdate(fgFLIGHT *f, fgTIME *t) {
|
||||||
|
|
||||||
|
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.15 1998/08/24 20:12:16 curt
|
||||||
|
// Rewrote sidereal_course with simpler parameters.
|
||||||
|
//
|
||||||
// Revision 1.14 1998/08/05 00:20:07 curt
|
// Revision 1.14 1998/08/05 00:20:07 curt
|
||||||
// Added a local routine to update lighting params every frame when time is
|
// Added a local routine to update lighting params every frame when time is
|
||||||
// accelerated.
|
// accelerated.
|
||||||
|
|
Loading…
Reference in a new issue