13.01.2015 / 18:43 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| В общем, сутки можно представить в виде круга (как часы, только не 12, а 24 часа на весь оборот). Относительно полудня полночь всегда лежит в противоположной стороне. При этом время в расчёт можно не брать, оно может быть отклонено в различном направлении (показано пунктиром). Так вот, получается симметрия, поэтому можно от половины круга избавиться и получить полукруг (рисунок справа). Если текущее время, находится в голубом секторе, значит считаем от рассвета/заката к полудню. Если в синем - от рассвета/заката к полуночи. Проблема лишь в том, чтобы найти формулу, по которой текущее время можно представить на этом полукруге. Чтобы взять время полудня (например 11:55 и 12:05) и чётко получить полночь (00:05 и 23:55).
__________________
let live Изменено aNNiMON (13.01 / 18:46) (всего 2 раза)
Прикрепленные файлы: rect3821.png (25.4 кб.) Скачано 119 раз |
13.01.2015 / 18:58 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| aNNiMON, Почему у тебя меняется Заход и Восход, а Долгота дня не меняется?Или меняется? |
13.01.2015 / 19:01 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Magatino, она в расчётах не участвует.
__________________
let live |
13.01.2015 / 19:50 | |
Dinisimys Пользователь Сейчас: Offline
Имя: Денис Регистрация: 30.07.2012
| aNNiMON, так ты уже решение нашел? или еще нужна помощь
|
13.01.2015 / 20:21 | |
Magatino Администратор Сейчас: Offline
Имя: Alexandr Откуда: Где Ленин родился. Simbirsk City Регистрация: 28.01.2011
| Цитата aNNiMON: Magatino, она в расчётах не участвует.Тогда смысл делать Восход и Заход разными, если Долгота Дня равномерна, то и Восход и Заход не меняются |
13.01.2015 / 23:21 | |
ВитаминКО Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| aNNiMON, обратись к разрабам Z Launcher'a, они такое уже замутили А почему полночь именно в 23:55 должна быть? Это же полночь, с 00:00, полдень с 12:00 __________________
わからない!! |
13.01.2015 / 23:40 | |
Dinisimys Пользователь Сейчас: Offline
Имя: Денис Регистрация: 30.07.2012
| aNNiMON, я тебя правильно понял, отклонения полночи и полдня от 00:00 и 12:00 , соответсвенно, равны? Ну тогда это упрощает задачу
|
14.01.2015 / 00:19 | |
vl@volk Пользователь Сейчас: Offline
Имя: Владислав Откуда: Земля Регистрация: 26.12.2012
| в=3ч з=18ч ан=((з+(в+24-з)/2)>24:ан-=24 ад=(в+(з-в)/2)>24:ад-=24 тв==ан:к=0 ан<тв<=ад:к++ ан>тв||ад<тв:к--
__________________
знает толк |
14.01.2015 / 00:21 | |
Dinisimys Пользователь Сейчас: Offline
Имя: Денис Регистрация: 30.07.2012
| aNNiMON, если у нас нет идеальных параметров, тогда надо привести к ним. Это и есть решение задачи, вот код, вроде пашет. mid - отклонение от 12:00 полдня, может быть отрицательным/положительным (11:30/12:30) , пашет если отклонения для полдня и полночи равны, что для тебя подходит. var mid=-10;//полдень - 11:50, полночь - 23:50
var time=1;
var vtime=time;
var coef;
if(mid>0) {
if(time>=0 && time<=mid) vtime=1440-(mid-time);
else vtime=time-mid;
} else {
if(time>=(1440+mid)) vtime=time-(1440+mid);
else vtime=time-mid;
}
if (vtime <= 720) {
coef = vtime / 720;
} else {
coef = 1 - (vtime - 720) / 720;
}
|
14.01.2015 / 00:22 | |
aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Сделал так, как и планировал - перевёл время в радианы и уже от этого плясал. Вот что получилось: http://jsfiddle.net/aNNiMON/b84h8uxu/Переводим function timeToRadians(time) {
return time * Math.PI * 2 / 1440;
}
function radiansToTime(radians) {
return radians * 1440 / (Math.PI * 2);
}
Затем приводим всё к началу координат (полночь - 0, полдень - 1 (180 градусов)). Ну а дальше работаем с полукругом, зеркально отображая те линии, которые превышают 180 градусов: if (startAngle > Math.PI)
startAngle = Math.abs(startAngle - 2*Math.PI);
Цитата ВитаминКО: А почему полночь именно в 23:55 должна быть? Это же полночь, с 00:00, полдень с 12:00Ты это в Питере спроси Ребят, всем спасибо за помощь __________________
let live Изменено aNNiMON (14.01 / 00:26) (всего 2 раза) |