Создать аналоговые часы
Цель: создать рабочие аналоговые часы, используя любой язык программирования.
Требования:
- Ваши часы должны содержать как минимум часовой и минутный указатели.
- Производимые часы могут быть в виде изображения, анимации или ASCII-арта.
- Ожидается, что часы показывают местное время.
Необязательный:
- Вы могли бы заставить свои часы показывать указатель секунд в дополнение к указателям минут и часов.
- Вы также можете сделать часовой пояс настраиваемым, если хотите.
- Вы можете сами выбирать, можете ли вы пренебрегать или решать проблемы, связанные с високосными секундами.
- Вы можете подумать о том, что происходит с вашей программой, если пользователь настраивает системные часы или происходит переход на летнее время.
Поскольку это конкурс популярности , пожалуйста, будьте изобретательны и нарисуйте несколько красивых и красивых часов, чтобы заслужить положительные отзывы. Победит ответ, получивший наибольшее количество голосов , за исключением того, что я не приму мой собственный ответ.
Наконец, рекомендуется (но не обязательно), чтобы вы опубликовали хотя бы один снимок экрана (или текстовый вывод в случае ASCII-art) ваших часов в своем ответе. Таким образом, людям не нужно будет компилировать и запускать его, чтобы увидеть, что это такое.
Этот вопрос предназначен для возрождения удаленного вопроса.
Обратите внимание, что это не дубликат этого другого вопроса . Этим вопросом был код-гольф с просьбой об ASCII-искусстве. Этот не ограничивается ASCII-искусством и вместо этого является конкурсом популярности , поэтому ожидается, что ответы будут очень разными.
источник
xclock
. Требуется xclock для установки.Ответы:
SVG + Javascript
▶▶▶ Демонстрация здесь ◀◀◀
При этом используются встроенные функции анимации SVG для поворота рук, с небольшим количеством дополнительного Javascript для извлечения местного времени и установки начальных позиций рук. Он работает нормально в Chrome и Safari и должен быть совместим с большинством современных браузеров, так как не использует никаких эффектов фильтра.
источник
Java 8
Я сделал часы, которые меняют свои цвета соответственно часу дня, показывая местное время. С течением времени он будет медленно менять свои цвета, используя более яркие цвета днем и более темные цвета ночью.
Размер окна можно изменить, а часы автоматически изменят размер до любого размера, который вы выберете.
Кроме того, если пользователь настраивает системные часы или происходит переход на летнее время, часы автоматически отражают это.
Есть две формы для запуска:
Запуск
ClockDemo
файла, то естьjava clock.ClockDemo
. Это откроет окно, и вы увидите там часы.Запуск
ClockSave
файла, то естьjava clock.ClockSave filename width height [HH:mm:ss]
. Это просто сохранит часы в файле PNG с указанным именем, шириной и высотой. Часы будут отображаться с заданным временем или, если оно опущено, с текущим временем. Например, если вы запустите его, посколькуjava clock.ClockSave clock.png 600 500 12:38:24
он сохранит часы в образе 600x500 вclock.png
файле, и часы будут показывать 12:38:24. Используйте часы с интервалом 00-23.Скриншоты
Вот несколько скриншотов и сгенерированных файлов:
00:36:50 утра:
02:38:51 утра:
06:42:13
11:15:28
05:02:37 вечера:
7:11:30 вечера:
09:29:34 PM:
Исходный код
Я разделил исходный код на пять разных файлов в пакете под названием
clock
.Также доступно на GitHub .
ClockDemo.java
ClockSave.java
JClock.java
ClockPaint.java
CoolPaint.java
источник
FreePascal
Эти часы показывают время, дату и фазу луны. Однако, в отличие от механических часов, у которых есть небольшое окно для отображения фазы луны, в моих часах все лицо используется, чтобы отобразить это. Сегодня 14 февраля - полная луна. Вы можете увидеть ожидаемый результат в течение следующих нескольких дней ниже.
источник
Простой, мой друг написал в TI 84 BASIC:
источник
Mathematica
Обычные часы, которые показывают местное время:
Стандартные опции
Нарисованный вручную датчик часов
Есть альтернативы встроенному датчику часов. Вот один.
Непрерывная развертка была реализована для часовой и минутной стрелок. Они обновляются вместе со второй рукой.
источник
Постскриптум - изначально написан, чтобы помочь моим детям научиться определять время. Страница 1 показывает текущее время, страницы 2-4 - страницы для учащихся. Страницы для учащихся используют
rand
для создания случайного времени, поэтому они меняются каждый раз, когда вы его обрабатываете. Используйте Ghostscript, чтобы сделать PDF-версию, если вы хотите показать текущее время. Размер для бумаги формата А4.источник
rand
давать вам одинаковые результаты каждый раз? Если вы не посеете это как-то, может быть(/dev/rand)(r)file read pop srand
.srand
если вы хотите зафиксировать свою позицию в последовательности псевдослучайных чисел PS. Процитируем PSLRM: «Выполнениеsrand
с определенным значением вызывает последующие вызовыrand
для генерации воспроизводимой последовательности результатов».1 srand
перед выполнением пользовательских программ. Таким образом, вы должны ввести свою собственную энтропию, чтобы получить невоспроизводимую последовательность. Не тестировал с Distiller, но это то, что делает Ghostscript.gsnd -q -dBATCH -c 'rand ='
всегда дает мне 16807.Демо: http://jsfiddle.net/kelunik/Vuuq8/7/embedded/result/
HTML
CSS
Javascript
источник
Вот один в обработке:
источник
HTML + CSS3 + JS
Я использовал в основном CSS для этих часов. Существует компонент JS, который обновляет атрибуты div часов с текущим временем, но вне этого времени все часы являются CSS.
живая демонстрация здесь: http://jsbin.com/nuvag/3
исходный код здесь: http://jsbin.com/nuvag/3/edit
источник
GNUPLOT
источник
xterm -t -e "gnuplot -e 'set term tek40xx' clock.plot"
(с раздражающимиПростой код MATLAB, написанный в основном для того, чтобы оценить 24-часовой набор на работе.
пока 1 runWatch () пауза (0,6); конец
источник
Python (с матплотлибом)
Вот очень простые часы, которые работают на рабочем столе. Измените
interval
в 2-й до последней строки1
для непрерывного движения вместо одного тика в секунду.источник
Mathematica
Используя больше демонстрационного кода из справочного браузера Mathematica, чем я, вероятно, должен, я получаю
с
источник
С + Каир + XCB
В основном сорвал постскриптумное решение и перевел в Каир. :)
Некоторые ошибки при этом: ps использует градусы, Каир использует радианы; ps ориентирует окно с + y вверх , xcb ориентирует его с + y вниз .
источник
Нажмите запустить. Он отображается только с шагом 30 минут, потому что часы - это один смайлик.
источник
Создание аналоговых часов привлекает людей, изучающих программирование. На самом деле я преподаю урок JavaScript в этом году, и мои студенты получили массу удовольствия, когда мы внедрили аналоговые часы, используя p5.js ...
Исходный код аналоговых часов доступен по адресу https://github.com/mveteanu/JSCourse.
источник