PDA

Просмотр полной версии : Разбираю алгоритм


razve
24.08.2014, 10:42
Разбираю Алгоритм восхода солнца/Заката. Дошел до пятого пункта:
5a. calculate the Sun's right ascension
RA = atan(0.91764*tan(L));

NOTE: RA potentially needs to be adjusted into the range [0,360) by adding/subtracting 360

Example:
RA = atan(0.91764 * -16.046)
= atan(0.91764 * -16.046)
= atan(-14.722)
= -86.11412

Не получается сделать итоговое вычисление atan(-14.722).
Разбираю все по порядку. Значение L уже вычислил.

L = 93.566;
RA = Math.round(Math.tan(L*Math.PI/180)*1000)/1000;
trace(RA);
//здесь вычислил tan(L): RA = -16.046;
//
RA = Math.round(0.91764*RA*1000)/1000;
trace(RA);
//здесь вычислил произведение 0.91764*tan(L): RA = -14.724;
//
RA = Math.atan(RA);
trace(RA);
Math.atan(RA) уже не получается. Может, я не правильно определяю atan в алгоритме как Math.atan во Flash?

nubideus
24.08.2014, 11:36
RA = Math.atan(0.91764 * Math.tan(L / 180 * Math.PI));?

razve
25.08.2014, 09:03
Это так же, как и у меня, только емко, ответ тот же -1.50298826855263.
Я разбрал более подробно, чтобы проконтролировать каждый шаг. До atan все нормально вычисляется.

Добавлено через 49 часов 6 минут
Разобрался. Проверил в яндекс-калькуляторе, там atan(-14.722) = -86.11412 и указано, что это в градусах - без этого так бы и не догадался. Умножил -1.50298413589557 на 180/Math.PI и все сошлось)