Представлен открытый проект moon — Луна в терминале такой, какой она выглядит сегодня ночью

Разработчик Гейр Исене представил открытый проект под названием moon для Linux и macOS. Исходный код проекта написан на Rust. Для работы решения требуется терминал, поддерживающий вывод графики, например Glass или Kitty.

«Приложение moon показывает, как Луна выглядит сегодня ночью: видны кратеры и «моря», освещённая часть ярко сияет, а ночная сторона окрашена в тёмно-серый цвет. В нижней части экрана отображаются фазы Луны за три предыдущих дня и на несколько дней вперед. Стрелки ← и → позволяют переключаться между днями, а клавиша t возвращает к текущей дате.

Создано с помощью Claude за час. Один исполняемый файл, содержащий внутри карты и названия. Никакой сети, никакого кэширования, никакого ожидания. В промежутках между нажатиями клавиш программа вообще ничего не делает.

В решении представлена ​​фотокарта Луны, полученная аппаратом Lunar Reconnaissance Orbiter. Фотография была сделана при высоком положении Солнца, поэтому кратеры не отбрасывали теней. Я наложил на изображение данные о высотах рельефа (с учетом освещения с северо-запада), благодаря чему очертания краев кратеров вновь стали различимы», 

— пояснил автор решения.

В терминале, поддерживающем вывод изображений, карта Луны отображается в виде растрового изображения (пикселей), а названия вписаны непосредственно в картинку. В остальных случаях используется шрифт Брайля: каждая ячейка содержит восемь точек, расположенных в два столбца по четыре, поэтому карта по вертикали занимает в четыре раза больше строк, чем изображение фазы Луны.

Детализированная карта имеет ширину 2048 пикселей; рельеф на ней затенён в соответствии с измеренными высотами лунной поверхности, а освещение задано с северо-запада, чтобы были видны края кратеров. Карта хранится в сжатом виде внутри бинарного файла и распаковывается при первом обращении к ней. Изображение формируется при запуске программы, при нажатии клавиши или при изменении размера окна. В промежутках между этими событиями никаких операций отрисовки не выполняется.

Фаза Луны рассчитывается исходя из среднего лунного цикла орбиты, поэтому она может на несколько часов расходиться с реальной фазой. Небольшие колебания Луны (либрация) не учитываются: карта всегда отображает усреднённое изображение видимой стороны с ориентацией «север — вверху»; при растущей Луне освещённая часть находится справа (как это наблюдается из Северного полушария).

Ранее разработчик Далтон Люс представил открытый проект astroterm. Это карта звёздного неба в терминале. Исходный код решения написан на C и Python и опубликован на GitHub под лицензией MIT. «Astroterm — это карта звездного неба на базе терминала, написанная на языке C. Она отображает положение звезд, планет, созвездий и многого другого в реальном времени, и все это в вашем терминале — телескоп не требуется! Настройте виды неба по дате, времени и местоположению с помощью точных визуальных образов ASCII», — пояснил автор проекта.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев