Категории
   
 
 
 Популярные
   
 
 
 
 
  Повращай солнце!
Категория: Солнце | Автор: daybit | (2015-11-08 00:23)
 
Обновлено: 2017-02-09 15:24

Неделю назад я опубликовал видео о ходе солнца по небу. Сегодня по просьбам из паблика "Суровый технарь" публикую скрипт (см. внизу), которым я визуализировал 3D-механику "солнце в аналеммах".

http//daybit.ru/img2/kak_solnce_hodit_151101.jpg

Скрипт написан под 3D библиотеку threejs. В нём используются следующие клавиши для управления (все буквенные клавиши - латинские).

* "Стрелка вправо": прибавить один час. "Влево" - минус 1 час. С shift'ом - медленно (по минутам). Автоматически включается функция автослежения камерой.
* "Стрелка вверх": прибавить один месяц (перейти на 22 число следующего месяца). "Вниз" - минус 1 месяц. С Shift'ом - ходить по числам 1, 8, 15, 22.
* E (от англ. Equation of time) - вкл/выкл уравнение времени. Соответственно, это переход от среднего времени к истинному солнечному, аналеммы превращаются в ровные часовые метки и обратно.
* A (от англ. Azimuth) - вкл/выкл азимутальной сетки координат.
* I (от англ. Invisible) - вкл/выкл часовые метки.
* S (от русского Shirota, не хотел путаться в английских latitude & longitude) - увеличение широты (перемещаемся на Север), с Shift'ом - уменьшение широты (на Юг).
* D (от русского Dolgota) - увеличение долготы (перемещаемся на Восток), с Shift'ом - уменьшение (на Запад).
* U (от UTC) - увеличение часового пояса на +1 (с Shift'ом - минус 1). Фактически - просто перемещается метка полуденной аналеммы, чтобы было проще ориентироваться во времени.
* K, L - камера влево/вправо (автослежение отключается)
* R (от англ. Reset) - выставить начальные параметры. Почти то же самое что F5 (перезагрузка страницы), только быстрее.
* "7" - запомнить состояние (с помощью cookies браузера), "8" - воспроизвести его.

Мышью можно "схватить" и таскать панораму во все стороны (автослежение за солнцем отключается). Скролл мыши работает как zoom.

Что можно посмотреть (в качестве примеров):
* "в городе Сочи тёмные ночи" (широта 43.5) - даже летом глубина ночного солнца - ниже всех границ сумерек;
* белые ночи в Санкт-Петербурге (широта 60.0, и можно севернее, до 66; дата 22 июня) - по аналогии с видео;
* полярный день (начиная с широт > 66 градусов) - можно например показать, что длительность полярного дня тем больше, чем севернее пункт; примерно то же самое - с полярной ночью (в окрестностях 22 декабря);
* ход солнца в тропических районах (тоже по аналогии с видео);
* южное полушарие: в смысле солнца - почти всё кверх ногами;
* часовые пояса, летнее/зимнее время - можно например наглядно показать, что аналеммы по всемирному времени остаются теми же самыми, меняется лишь их локальное название.

Код скрипта не оптимизировался - был написан в лоб, и поскольку вычислительной мощности хватило с избытком, то так всё и оставил. Также хочу обратить внимание: поскольку это легко модифицируемый javascript, то не стоит его брать где-то ещё, кроме моего сайта, если хотите быть уверены в принципиальной верности расчётов. И заодно - если столкнётесь с расчётными глюками - сообщите мне.

Скрипт написан ТОЛЬКО для наглядной демонстрации хода солнца, и не претендует на большую точность. Для точных расчётов следует использовать другое программное обеспечение.

Раскрыть
Например - мою программу Day-night, в которой вы можете выставить свои координаты с точностью до нескольких знаков после запятой и рассчитать ход солнца в азимутальных координатах для любой заданной даты (вместе с временами восхода и захода, и истинного полудня). Либо рассчитать весь пояс 24-х аналемм. Кстати, надо бы снять видео по использованию программы.

Вот ссылка на сам скрипт.

*********** 2016-08-25 09:50 ***********
Примечание. Иногда попадаются браузеры, на которых скрипт не работает и выдаёт hi there. С ходу пока не разобрался, что именно там не так. Если у вас будет что-то подобное, связывайтесь со мной, попробуем разобраться.

Раскрыть
И - не знаю зачем, но пусть будет:
файл размером 18108 байт (от 2015-11-07 23:57 utc3), MD5 хеш:
hex: 6c78b657eef1ab9aa553ac4248009717
base64: bHi2V+7xq5qlU6xCSACXFw==

************* 2016-11-13 ****************
Для тех, кто хочет подцепить свои панорамы и покрутить скрипт на своём компьютере:
1. Скачайте архив http://daybit.ru/pano1509/pano1509.zip (147168 байт)
2. Распакуйте его так, чтобы файл TINY.EXE оказался в папке c:\root\pano1509\
2а. Если такой путь недоступен, распакуйте куда угодно и подправьте соответствующие пути в ярлыке TINY.lnk (правой кнопкой - Свойства)
3. Поместите файл-панораму (в нашем случае это london150918_.jpg) в папку c:\root\pano1509\www\. В качестве примера можете скачать http://daybit.ru/pano1509/london150918_.jpg - это должна быть эквидистантная панорама с выровненным горизонтом и соотношением высота:ширина = 1:2
4. Отредактируйте, если необходимо, файл pano_.html: в нём можно выставить имя файла с панорамой filenam_ = "london150918_.jpg", географические координаты местности shir_ini = 51.5, dolg_ini = 0, а также совместить север аналемм с севером панорамы az_shft = -86.5 (пристреляться с помощью, например, Google Earth, а затем опытным путём совместить с фотографией-панорамой)
5. Запустите веб-сервер: c:\root\pano1509\TINY.lnk. При этом в диспетчере задач в списке процессов появится TINY.EXE, и оттуда процесс можно снять, если необходимо.
6. В веб-браузере пройдите по адресу http://localhost:8000, ну или сразу http://localhost:8000/pano_.html

************* 2017-02-09 ****************
Дайджест недавних изысканий по совмещению гугловых сферических панорам с аналеммами:

* Мурманск
* Москва (Гагарин)
* Сидней
* Пхукет

Каждая панорама тянет примерно по 3-4 МБ.


 




----
 
 Календарь
 
« Март 2017 »
Пн Вт Ср Чт Пт Сб Вс
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
 
 
Архив сайта
   
 
 
© 2012-2015 daybit
Движок: NG CMS
SQL запросов: 7 | Генерация страницы: 0.09 сек 
Яндекс.Метрика