| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Получение восхода/захода солнца |
| Автор: Albinos_x 18.10.2005, 15:27 | ||
| Доброго времени суток! Вот сталкнулся с задачей. Программе нужно знать время восхода и захода солнца на заданный пользователем день. Поиск по форуму ничего не дал. Поиск по интернету выдал исходники на Бейсике, пытался разобраться... потом нашёл исходники на делфи... Но результат, который выдаёт программа не соответствует истине например: для данных: 55 широта 84 долгота +6 часовой пояс дата: 18.10.2005 выдаёт: время восхода: 5:18 время захода: 19:01 а истинное значение: время восхода: 8:04 время захода: 18:22 как видите разница существенная. Может кто-то делал подобное и знает как решить данную задачу? заранее СПАСИБО!!! Добавлено @ 15:31 если кому интересно, вот код, который я использовал (немного изменил, для удобства использования) :
|
| Автор: Самурай 18.10.2005, 20:17 | ||
| { Программа вычисляет время восхода и захода солнца по дате (с точностью до минуты) в пределах нескольких текущих столетий. Производит корректировку, если географическая точка находится в арктическом или антарктическом регионе, где заход или восход солнца на текущую дату может не состояться. Вводимые данные: положительная северная широта и отрицательная западная долгота. Часовой пояс указывается относительно Гринвича (например, 5 для EST и 4 для EDT). Алгоритм обсуждался в "Sky & Telescope" за август 1994, страница 84. }
|
| Автор: Albinos_x 19.10.2005, 01:00 |
| Самурай, если ты не обратил внимание, то этот алгоритм полностью эдентичен тому, который я привёл За исключением одного, все действия занесены в одну функцию. Я начинал пробовать именно с этого варианта, но результат тот же |
| Автор: Albinos_x 19.10.2005, 01:32 | ||
| вот в результате суточных мучений и кучи прочитанной литературы навоял свой код и алгоритм. Пока ещё сыроват, нужно сделать некоторые доработки. Но для подсчёта времени восхода и захода в северной широте и за пределами полярного круга выдаёт более точное время: входные данные: L- широта-55 В-долгота-83 Н-часовой пояс Результат: восход 7:26 заход 17:58 Расхождение с Более точными данными: Восход: +38 мин Заход : +26 мин косяк видимо, где-то в вычислении звёздного времени по отношению к тропическому...а так же возможно, то что нет более точной точки привязки... бумс разбираться, нужно добиться погрешности не более 5 мин... сам код функции:
|
| Автор: Albinos_x 19.10.2005, 01:49 |
| по косяку... по характеру отклонения от более точных данных, делаю предварительный вывод: Отклонение, как я уже сказал, где-то в вычилении разницы тропического и звёздного времени, плюс к этому отсутствие учёта рефракции и суточного паралакса..... разбираюсь... вернее уже завтра буду, время 6:06, я еще не ложился, через 2 часа вставать... |
| Автор: Albinos_x 19.10.2005, 13:54 |
| разобрался... |