Utwórz zegar analogowy
Cel: Utworzenie działającego zegara analogowego za pomocą dowolnego języka programowania.
Wymagania:
- Twój zegar powinien zawierać co najmniej wskazówki godzinowe i minutowe.
- Wytworzony zegar może mieć postać obrazu, animacji lub sztuki ASCII.
- Oczekuje się, że zegar pokazuje czas lokalny.
Opcjonalny:
- Możesz ustawić zegar tak, aby oprócz wskaźnika minut i godzin pokazywał wskaźnik sekund.
- Możesz także skonfigurować strefę czasową, jeśli chcesz.
- Masz swobodę wyboru, czy możesz zaniedbać lub rozwiązać problemy dotyczące sekund przestępnych.
- Możesz pomyśleć o tym, co stanie się z twoim programem, jeśli użytkownik dostosuje zegar systemowy lub jeśli nastąpi zmiana światła dziennego.
Ponieważ jest to konkurs popularności , bądź kreatywny i narysuj kilka ładnych i pięknych zegarów, które zasługują na poparcie. Najbardziej pozytywna odpowiedź wygrywa , z wyjątkiem tego, że nie zaakceptuję własnej odpowiedzi.
Na koniec zaleca się (ale nie jest to wymagane) opublikowanie co najmniej jednego zrzutu ekranu (lub tekstu w przypadku grafiki ASCII) zegara w odpowiedzi. W ten sposób ludzie nie będą musieli się kompilować i uruchamiać, aby zobaczyć, co to jest.
To pytanie ma być odrodzeniem usuniętego pytania.
Pamiętaj, że nie jest to kopia tego drugiego pytania . To pytanie dotyczyło gry w golfa z kodem ASCII. Ten nie jest ograniczony do sztuki ASCII i jest konkursem popularności , więc odpowiedzi powinny być bardzo różne.
źródło
xclock
. Wymaga zainstalowania xclock.Odpowiedzi:
SVG + JavaScript
▶szałek Live demo tutaj ◀◀◀
Wykorzystuje to wbudowane funkcje animacji SVG do obracania rąk, z odrobiną dodatkowego Javascript, aby pobrać czas lokalny i ustawić początkowe pozycje rąk. Działa OK w Chrome i Safari i powinien być kompatybilny z większością współczesnych przeglądarek, ponieważ nie używa żadnych efektów filtrów.
źródło
Java 8
Zrobiłem zegar, który zmienia kolory odpowiednio do pory dnia, pokazując czas lokalny. Z upływem czasu powoli zmienia kolory, używając jaśniejszych kolorów w dzień i ciemniejszych kolorów w nocy.
Rozmiar okna można zmienić, a zegar automatycznie zmieni rozmiar na dowolny wybrany rozmiar.
Ponadto, jeśli użytkownik dostosuje zegar systemowy lub nastąpi zmiana czasu w ciągu dnia, zegar automatycznie to odzwierciedli.
Istnieją dwie formy uruchomienia:
Uruchamianie
ClockDemo
pliku, tjjava clock.ClockDemo
. Otworzy się okno i zobaczysz tam zegar.Uruchamianie
ClockSave
pliku, tjjava clock.ClockSave filename width height [HH:mm:ss]
. To po prostu zapisze zegar w pliku PNG o podanej nazwie, szerokości i wysokości. Zegar będzie losowany z podanym czasem, a jeśli go pominięto, z bieżącym czasem. Na przykład, jeśli uruchomisz go, ponieważjava clock.ClockSave clock.png 600 500 12:38:24
spowoduje zapisanie zegara na obrazie 600 x 500 wclock.png
pliku, a zegar pokaże 12:38:24 AM. Wykorzystuj godziny w przedziale 00-23.Zrzuty ekranu
Oto kilka zrzutów ekranu i wygenerowanych plików:
00:36:50:
02:38:51 AM:
06:42:13 AM:
11:15:28:
05:02:37 PM:
19:11:30:
09:29:34 PM:
Kod źródłowy
Oddzieliłem źródło w pięciu różnych plikach w pakiecie o nazwie
clock
.Dostępne również w GitHub .
ClockDemo.java
ClockSave.java
JClock.java
ClockPaint.java
CoolPaint.java
źródło
Freepascal
Ten zegar wyświetla godzinę, datę i fazę księżyca. Jednak w przeciwieństwie do zegarów mechanicznych, które mają małe okno do wyświetlania fazy księżyca, w moim zegarze wyświetlana jest cała twarz. Dzisiaj 14 lutego jest pełnią księżyca. Poniżej możesz zobaczyć oczekiwany wynik w ciągu najbliższych kilku dni.
źródło
Prosty mój przyjaciel napisał w TI 84 BASIC:
źródło
Matematyka
Zwykły waniliowy, działający zegar, który wyświetla czas lokalny:
Opcje standardowe
Ręcznie rysowane zegar zegarowy
Istnieją alternatywy dla wbudowanego zegara. Tutaj jest jeden.
Ciągłe przemiatanie zostało wdrożone dla wskazówek godzin i minut. Aktualizują się wraz z drugą ręką.
źródło
Postscript - pierwotnie napisany, aby pomóc moim dzieciom nauczyć się mówić godzinę. Strona 1 pokazuje aktualny czas, strony 2-4 to strony dla uczniów. Strony dla uczących się służą
rand
do tworzenia losowych czasów, więc są różne przy każdym przetwarzaniu. Użyj Ghostscript, aby utworzyć wersję PDF, jeśli chcesz pokazać aktualny czas. Rozmiar papieru A4.źródło
rand
za każdym razem nie dasz takich samych wyników? Chyba że jakoś go zasiejesz(/dev/rand)(r)file read pop srand
.srand
jeśli chcesz ustalić swoją pozycję w sekwencji liczb pseudolosowych PS. Cytując PSLRM: „Wykonaniesrand
z określoną wartością powoduje kolejne wywołania wrand
celu wygenerowania powtarzalnej sekwencji wyników”.1 srand
przed uruchomieniem programów użytkownika. Musisz więc wprowadzić własną entropię, aby uzyskać niepowtarzalną sekwencję. Nie testowałem z Distillerem, ale to właśnie robi Ghostscript.gsnd -q -dBATCH -c 'rand ='
zawsze daje mi 16807.Demo: http://jsfiddle.net/kelunik/Vuuq8/7/embedded/result/
HTML
CSS
JavaScript
źródło
Oto jeden w przetwarzaniu:
źródło
HTML + CSS3 + JS
Użyłem głównie CSS do tego zegara. Istnieje komponent JS, który aktualizuje atrybuty div div zegara z bieżącym czasem, ale poza tym cały zegar to CSS.
demo na żywo tutaj: http://jsbin.com/nuvag/3
kod źródłowy tutaj: http://jsbin.com/nuvag/3/edit
źródło
GNUPLOT
źródło
xterm -t -e "gnuplot -e 'set term tek40xx' clock.plot"
(z irytującymi mrugnięciami)Prosty kod MATLAB, pisany głównie z myślą o 24-godzinnym wybieraniu w pracy.
podczas gdy 1 runWatch () pauza (0.6); koniec
źródło
Python (z matplotlib)
Oto bardzo prosty zegar, który działa na pulpicie. Zmień
interval
od drugiej do ostatniej linii1
na ciągły ruch zamiast jednego tiku na sekundę.źródło
Matematyka
Używam więcej kodu demonstracyjnego z przeglądarki pomocy Mathematica, niż powinienem
z
źródło
C + Kair + xcb
Zasadniczo oderwałem rozwiązanie PostScript i przetłumaczono na Kair. :)
Niektórzy muszą to robić: ps używa stopni, Kair używa radianów; ps orientuje okno za pomocą + y w górę , xcb orientuje je za pomocą + y w dół .
źródło
Kliknij uruchom. Wyświetla się tylko co 30 minut, ponieważ zegar jest pojedynczym emoji.
źródło
Tworzenie zegarów analogowych ma jakąś atrakcję dla osób uczących się programowania. W tym roku prowadzę zajęcia JavaScript, a moi uczniowie świetnie się bawili, kiedy wdrożyliśmy zegar analogowy za pomocą p5.js ...
Kod źródłowy zegara analogowego jest dostępny na https://github.com/mveteanu/JSCourse
źródło