Показать сообщение отдельно
Старый 13.03.2007, 08:49
AxelRB вне форума Посмотреть профиль Отправить личное сообщение для AxelRB Посетить домашнюю страницу AxelRB Найти все сообщения от AxelRB
  № 12  
Ответить с цитированием
AxelRB
 
Аватар для AxelRB

Регистрация: Mar 2006
Сообщений: 104
По умолчанию Уравнение восхода

Сорри, что поднимаю старую тему.
Где-то с месяц назад написал код, определяющий время восхода и заката для заданной широты (может не работать для полярной ночи/дня).
Погрешность около 10 минут.
Использовал http://en.wikipedia.org/wiki/sunrise_equation

Код:
var LAT:Number = 42; // широта местности

function toRad(x:Number) {
	return x*Math.PI/180;
}

function toDeg(x:Number) {
	return x*180/Math.PI;
}

function getMin(t:Number) {
	return Math.floor((t-Math.floor(t))*60);
}

var T:Date = new Date();
var startOfYear:Date = new Date(T.getYear()+1900, 0, 1);
var doy:Number = Math.floor((T-startOfYear)/86400000)+1;

var decl:Number = -23.45*Math.cos(toRad((doy+10)*360/365))
var st:Number = toDeg(Math.acos(-Math.tan(toRad(LAT))*Math.tan(toRad(decl))))/15+0.1;
var stSunrise = 13.25-st;
var stSunset = 13.25+st;
trace(Math.floor(stSunrise)+":"+getMin(stSunrise));
trace(Math.floor(stSunset)+":"+getMin(stSunset));