Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Разбираю алгоритм (http://www.flasher.ru/forum/showthread.php?t=208752)

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 уже вычислил.
Код AS1/AS2:

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

Код AS1/AS2:

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 и все сошлось)


Часовой пояс GMT +4, время: 19:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.