Buat jam analog
Tujuan: Untuk membuat jam analog yang berfungsi menggunakan bahasa pemrograman apa pun.
Persyaratan:
- Jam Anda harus menampilkan setidaknya petunjuk jam dan menit.
- Jam yang dihasilkan bisa dalam bentuk gambar, animasi atau ASCII-art.
- Diharapkan jam menunjukkan waktu setempat.
Pilihan:
- Anda mungkin membuat jam Anda untuk menunjukkan penunjuk detik di samping penunjuk menit dan jam.
- Anda juga dapat membuat zona waktu dapat dikonfigurasi jika diinginkan.
- Anda bebas memilih jika Anda bisa mengabaikan atau menangani masalah tentang detik kabisat.
- Anda mungkin berpikir tentang apa yang terjadi pada program Anda jika pengguna menyesuaikan jam sistem atau jika perubahan siang hari terjadi.
Karena ini adalah kontes popularitas , harap berkreasi dan menggambar beberapa jam yang bagus dan indah untuk mendapatkan penghargaan. Sebagian besar jawaban yang dimenangkan menang , dengan pengecualian bahwa saya tidak akan menerima jawaban saya sendiri.
Akhirnya, disarankan (tetapi tidak diharuskan) agar Anda memposting setidaknya satu tangkapan layar (atau keluaran teks untuk seni ASCII) dari jam Anda dalam jawaban Anda. Dengan cara ini, orang tidak perlu mengkompilasi dan menjalankannya untuk melihat apa itu.
Pertanyaan ini dimaksudkan untuk membangkitkan kembali pertanyaan yang dihapus.
Perhatikan bahwa ini bukan duplikat dari pertanyaan lain ini . Pertanyaan itu adalah golf kode yang meminta ASCII-art. Yang ini tidak terbatas pada seni ASCII dan sebagai gantinya adalah kontes popularitas , jadi jawabannya diharapkan akan sangat berbeda.
sumber
xclock
. Membutuhkan xclock untuk diinstal.Jawaban:
SVG + Javascript
▶▶▶ Demo langsung di sini ◀◀◀
Ini menggunakan fungsi animasi bawaan SVG untuk memutar tangan, dengan sedikit Javascript tambahan untuk mengambil waktu setempat dan mengatur posisi tangan awal. Ini berfungsi baik di Chrome dan Safari, dan harus kompatibel dengan sebagian besar browser modern karena tidak menggunakan efek filter apa pun.
sumber
Java 8
Saya membuat jam yang mengubah warnanya sesuai dengan jam hari, menunjukkan waktu setempat. Seiring waktu berlalu, perlahan-lahan akan berubah warna, menggunakan warna yang lebih cerah di siang hari dan warna yang lebih gelap di malam hari.
Jendela dapat diubah ukurannya dan jam akan mengubah ukuran secara otomatis ke ukuran apa pun yang Anda pilih.
Selanjutnya, jika pengguna menyesuaikan jam sistem atau jika perubahan waktu siang hari terjadi, jam akan secara otomatis mencerminkan itu.
Ada dua bentuk untuk menjalankannya:
Menjalankan
ClockDemo
file, yaitujava clock.ClockDemo
. Ini akan membuka jendela dan Anda akan melihat jam di sana.Menjalankan
ClockSave
file, yaitujava clock.ClockSave filename width height [HH:mm:ss]
. Ini hanya akan menyimpan jam dalam file PNG dengan nama file yang diberikan, lebar dan tinggi. Jam akan digambar dengan waktu yang diberikan, atau jika dihilangkan, dengan waktu saat ini. Misalnya, jika Anda menjalankannya karenajava clock.ClockSave clock.png 600 500 12:38:24
akan menyimpan jam dalam gambar 600x500 dalamclock.png
file dan jam akan menunjukkan 12:38:24 AM. Gunakan jam dalam interval 00-23.Tangkapan layar
Berikut adalah beberapa tangkapan layar dan file yang dihasilkan:
00:36:50 pagi:
02:38:51 pagi:
06:42:13 pagi:
11:15:28:
05:02:37 PM:
07:11:30 PM:
09:29:34 PM:
Kode sumber
Saya memisahkan sumber dalam lima file berbeda dalam sebuah paket bernama
clock
.Juga tersedia di GitHub .
ClockDemo.java
ClockSave.java
JClock.java
ClockPaint.java
CoolPaint.java
sumber
Freepascal
Jam ini menampilkan waktu, tanggal dan fase bulan. Namun tidak seperti jam mekanis yang memiliki jendela kecil untuk menampilkan fase bulan, pada jam saya seluruh wajah digunakan untuk menampilkannya. Hari ini 14 Februari adalah bulan purnama. Anda dapat melihat output yang diharapkan selama beberapa hari ke depan di bawah ini.
sumber
Yang sederhana yang ditulis teman saya di TI 84 BASIC:
sumber
Mathematica
Vanilla polos, jam yang berfungsi yang menampilkan waktu lokal:
Opsi Standar
Pengukur jam tangan digambar
Ada alternatif untuk pengukur jam bawaan. Ini satu.
Sapu kontinyu telah diterapkan untuk jarum jam dan menit. Mereka memperbarui bersama dengan tangan kedua.
sumber
Catatan tambahan - aslinya ditulis untuk membantu anak-anak saya belajar mengetahui waktu. Halaman 1 menunjukkan waktu saat ini, halaman 2-4 adalah halaman untuk pelajar. Halaman untuk pelajar digunakan
rand
untuk membuat waktu acak, sehingga mereka berbeda setiap kali Anda memprosesnya. Gunakan Ghostscript untuk membuat versi PDF jika Anda ingin menunjukkan waktu saat ini. Berukuran untuk kertas A4.sumber
rand
memberi Anda hasil yang sama setiap kali? Kecuali Anda menaburkannya entah bagaimana, mungkin(/dev/rand)(r)file read pop srand
.srand
jika Anda ingin memperbaiki posisi Anda dalam urutan PS dari nomor pseudorandom. Mengutip PSLRM: "Eksekusisrand
dengan nilai tertentu menyebabkan permintaan berikutnyarand
untuk menghasilkan urutan hasil yang dapat direproduksi."1 srand
sebelum menjalankan program pengguna. Jadi, Anda harus memperkenalkan entropi Anda sendiri untuk mendapatkan urutan yang tidak dapat direproduksi. Belum diuji dengan Distiller, tetapi inilah yang Ghostscript lakukan.gsnd -q -dBATCH -c 'rand ='
selalu memberi saya 16807.Demo: http://jsfiddle.net/kelunik/Vuuq8/7/embedded/result/
HTML
CSS
Javascript
sumber
Berikut ini salah satu yang sedang diproses:
sumber
HTML + CSS3 + JS
Saya telah menggunakan sebagian besar CSS untuk jam ini. Ada komponen JS yang memperbarui atribut pada div jam dengan waktu saat ini, tetapi di luar itu seluruh jam adalah CSS.
live demo di sini: http://jsbin.com/nuvag/3
kode sumber di sini: http://jsbin.com/nuvag/3/edit
sumber
GNUPLOT
sumber
xterm -t -e "gnuplot -e 'set term tek40xx' clock.plot"
(dengan kedipan-kedipan yang mengganggu)Kode MATLAB sederhana, sebagian besar ditulis untuk menghargai panggilan 24 jam di tempat kerja.
sementara 1 runWatch () jeda (0,6); akhir
sumber
Python (dengan matplotlib)
Berikut adalah jam yang sangat mendasar yang berjalan di desktop. Ubah
interval
baris ke-2 ke terakhir ke1
untuk gerakan terus-menerus, bukan satu centang per detik.sumber
Mathematica
Menggunakan lebih banyak kode demo dari browser bantuan Mathematica daripada yang seharusnya, saya dapatkan
dengan
sumber
C + Kairo + xcb
Pada dasarnya merobek solusi postscript dan menerjemahkan ke Kairo. :)
Beberapa mengerti dalam melakukan ini: ps menggunakan derajat, Kairo menggunakan radian; ps mengarahkan jendela dengan + y ke atas , xcb mengarahkannya dengan + y ke bawah .
sumber
Klik jalankan. Ini hanya menampilkan dalam peningkatan 30 menit karena jam adalah emoji tunggal.
sumber
Membuat jam analog memiliki semacam daya tarik dengan orang-orang yang belajar pemrograman. Sebenarnya saya mengajar kelas JavaScript tahun ini dan siswa saya bersenang-senang ketika kami mengimplementasikan jam analog menggunakan p5.js ...
Kode sumber untuk jam analog tersedia di https://github.com/mveteanu/JSCourse
sumber