ВНИМАНИЕ! На форуме началось голосование в конкурсе - астрофотография месяца ДЕКАБРЬ!
0 Пользователей и 1 Гость просматривают эту тему.
"Вычитайте 360x (x = целое число) чтобы L и g будут между 0 и 360 градусов". Объясните пожалуйста что за x на который нужно умножить 360 и откуда нужно вычесть результат?
=A1-360*ЦЕЛОЕ(A1/360)
L:=L-360*Floor(L/360);
И всё ли тут правильно делаю?
function H_Sun(JD,fi:Double):Double; // fi и результат - вградусахconst GR=PI/180;var n,L,g,Lam,eps,del:Double;begin n:= JD-2451545.0; L:=280.472 + 0.9856474*n; g:= 357.528 + 0.9856003*n; L:=L-360*Floor(L/360); // g:=g-360*Floor(g/360); // Lam:= L + 1.915*Sin(GR*g) + 0.020*Sin(GR*2*g); eps:=23.439-0.0000004*n; del:=ArcSin(Sin(eps*GR)*Sin(GR*Lam)); Result:=ArcCos(-Tan(GR*fi)*Tan(del))/GR;end;
beginn:= JD – 2451545.0; // Число дней с J2000,0.L:= 280.472 + 0.9856474 * n // Средняя долгота исправленная за оберрациюg = 357.528 + 0.9856003 * n // Средняя аномалия // Далее ищем склонение Солнца.lmd:= L + 2.915*sin(g*pi.180) + 0.020*sin((g*2)*pi/180); // Эклиптическая долгота.// В lmd перешли от средней к истинной долготе, исправив за элипс орбиты.eps:= 23.439 - 0.0000004*n; // Наклонность эклиптики.dta:= ArcSin(Sin(eps*pi/180)*Sin(pi/180*lmd)); // Склонение Солнца.// В dta перешли от эклиптических координат к экваториальным. Далее...a:= -0.83 // Высота центра солнечного диска.// fi - широта, где наблюдается восход. Далее часовой угол.h:= (sin(a*pi/180)-sin(fi*pi/180)*sin(dta*pi/180))/(cos(fi*pi/180)*cos(dta*pi/180);// Часовой угол переводим во время, прибавляем или вычитаем к\из 12. Так получаем// истинный заход и восход.end;
beginL1:= L + cos((153.23+22518.7541 * T)*pi/180) // A + cos((216.57+45037.5082 * T)*pi/180) // B + cos((312.69+32964.3577 * T)*pi/180) // C + sin((350,74+445267.114 * T - 0.00144 * power(T,2))*pi/180) // D + sin((231.19+20.20 * T)*pi/180); // E// К долготе истинной долготе L прибавляются члены A, B, C, D, E. Исправление за возмущения. end;
power(T, 2) - это сильноЛучше T * T сделать
dta:= ArcSin
begin JD:= StrToFloat(Edit2.Text); n:= JD - 2451545.0; L:= 280.472 + 0.9856474 * n; // Средняя долгота исправленная за оберрацию g:= 357.528 + 0.9856003 * n; // Средняя аномалия // Далее ищем склонение Солнца. lmd:= L + 2.915*sin(g*Gr) + 0.020*sin((g*2)*Gr); // Эклиптическая долгота. // В lmd перешли от средней к истинной долготе, исправив за эллипс орбиты. eps:= 23.439 - 0.0000004*n; // Наклонность эклиптики. dta:= ArcSin(Sin(eps*Gr)*Sin(lmd*Gr)); // Склонение Солнца. // В dta перешли от эклиптических координат к экваториальным. Далее... a:= -0.83; // Высота центра солнечного диска. fi:= StrToFloat(Edit1.Text); h:= (sin(a*Gr)-sin(fi*Gr)*sin(dta))/(cos(fi*Gr)*cos(dta)); // Часовой угол переводим во время, прибавляем или вычитаем к\из 12. Так получаем // истинный заход и восход. Edit3.Text:= FloatToStr(h);end;
А вот дальше как всё это соотнести с гражданским временем?
а широту северную 59,30 и JD = 2458061,9704745 выдаёт часовой угол h = 0,458448350525439.
Что-то не то, 26.6 градусов. Получается, что на широте Питера сейчас восход - всего за 1ч45 мин до истинного полудня, а заход - через 1ч45мин.У меня получилось 62.14 гр. Проверьте дельту - склонение Солнца. Должно получиться минус 15.5
Но всё равно не 62.14 и -15.5
B:= 360*(Dn-81)/365;E:= 7.53*cos(B*pi/180)+1.5*sin(B*pi/180)-9.87*sin((2*B)*pi/180);
Кстати интересно, а можно ли от рассчётов восхода и захода непосредственно перейти к рассчёту солнцестояний и равноденствий.