Crea un reloj analógico
Objetivo: crear un reloj analógico que funcione con cualquier lenguaje de programación.
Requisitos:
- Su reloj debe presentar al menos los indicadores de hora y minutos.
- El reloj producido podría tener la forma de una imagen, una animación o un arte ASCII.
- Se espera que el reloj muestre la hora local.
Opcional:
- Puede hacer que su reloj muestre el puntero de segundos además de los punteros de minutos y horas.
- También puede hacer que la zona horaria sea configurable si lo desea.
- Usted es libre de elegir si puede descuidar o manejar los problemas relacionados con los segundos bisiestos.
- Puede pensar en lo que le sucede a su programa si el usuario ajusta el reloj del sistema o si se produce un cambio de luz natural.
Dado que este es un concurso de popularidad , sea creativo y dibuje algunos relojes bonitos y hermosos para merecer los votos positivos. La respuesta más votada gana , con la excepción de que no aceptaré mi propia respuesta.
Finalmente, se recomienda (pero no es obligatorio) que publique al menos una captura de pantalla (o salida de texto en el caso de ASCII-art) de su reloj en su respuesta. De esta manera, las personas no necesitarán compilarlo y ejecutarlo para ver qué es.
Esta pregunta está destinada a revivir una pregunta eliminada.
Tenga en cuenta que no es un duplicado de esta otra pregunta . Esa pregunta era un código de golf que pedía arte ASCII. Este no está restringido al arte ASCII y es un concurso de popularidad , por lo que se espera que las respuestas sean muy diferentes.
fuente
xclock
. Requiere que se instale xclock.Respuestas:
SVG + Javascript
▶▶▶ Demo en vivo aquí ◀◀◀
Esto utiliza las funciones de animación incorporadas de SVG para girar las manecillas, con un poco de Javascript adicional para obtener la hora local y establecer las posiciones iniciales de las manecillas. Funciona bien en Chrome y Safari, y debería ser compatible con la mayoría de los navegadores modernos, ya que no utiliza ningún efecto de filtro.
fuente
Java 8
Hice un reloj que cambia sus colores según la hora del día, mostrando la hora local. A medida que pasa el tiempo, cambiará lentamente de color, usando colores más brillantes durante el día y colores más oscuros por la noche.
La ventana puede cambiar de tamaño y el reloj cambiará automáticamente de tamaño al tamaño que elija.
Además, si el usuario ajusta el reloj del sistema o si ocurre un cambio en el horario de verano, el reloj lo reflejará automáticamente.
Hay dos formas de ejecutarlo:
Ejecutando el
ClockDemo
archivo, es decirjava clock.ClockDemo
. Esto abrirá una ventana y verá el reloj allí.Ejecutando el
ClockSave
archivo, es decirjava clock.ClockSave filename width height [HH:mm:ss]
. Esto solo guardará el reloj en un archivo PNG con el nombre de archivo dado, ancho y alto. El reloj se dibujará con la hora dada, o si se omite, con la hora actual. Por ejemplo, si lo ejecutajava clock.ClockSave clock.png 600 500 12:38:24
, guardará el reloj en una imagen de 600x500 en unclock.png
archivo y el reloj mostrará 12:38:24 AM. Use horas en el intervalo 00-23.Capturas de pantalla
Aquí hay algunas capturas de pantalla y archivos generados:
00:36:50 AM:
02:38:51 am:
06:42:13 am:
11:15:28 am:
05:02:37 pm:
07:11:30 pm:
09:29:34 p.m.
Código fuente
Separé la fuente en cinco archivos diferentes en un paquete llamado
clock
.También disponible en GitHub .
ClockDemo.java
ClockSave.java
JClock.java
ClockPaint.java
CoolPaint.java
fuente
Freepascal
Este reloj muestra la hora, fecha y fase de la luna. Sin embargo, a diferencia de los relojes mecánicos que tienen una pequeña ventana para mostrar la fase de la luna, en mi reloj se usa toda la cara para mostrarla. Hoy 14 de febrero es luna llena. Puede ver el resultado esperado en los próximos días a continuación.
fuente
Una simple que mi amigo escribió en TI 84 BASIC:
fuente
Mathematica
Un reloj simple y funcional que muestra la hora local:
Opciones estandar
Reloj calibre dibujado a mano
Hay alternativas al medidor de reloj incorporado. Aqui hay uno.
Se ha implementado un barrido continuo para las manecillas de hora y minutos. Se actualizan junto con la segunda mano.
fuente
Postdata: originalmente escrita para ayudar a mis hijos a aprender a decir la hora. La página 1 muestra la hora actual, las páginas 2 a 4 son páginas para estudiantes. Las páginas para los estudiantes usan
rand
para hacer tiempos aleatorios, por lo que son diferentes cada vez que lo procesas. Use Ghostscript para hacer una versión en PDF si desea mostrar la hora actual. Tamaño para papel A4.fuente
rand
te dará los mismos resultados cada vez? A menos que lo siembres de alguna manera, tal vez(/dev/rand)(r)file read pop srand
.srand
si desea fijar su posición en la secuencia de números pseudoaleatorios de PS. Para citar el PSLRM: "Ejecutarsrand
con un valor particular provoca invocaciones posteriores derand
generar una secuencia reproducible de resultados".1 srand
antes de ejecutar programas de usuario. Por lo tanto, debe introducir su propia entropía para obtener una secuencia no reproducible. No he probado con Distiller, pero esto es lo que hace Ghostscript.gsnd -q -dBATCH -c 'rand ='
siempre me da 16807.Demostración: http://jsfiddle.net/kelunik/Vuuq8/7/embedded/result/
HTML
CSS
Javascript
fuente
Aquí hay uno en proceso:
fuente
HTML + CSS3 + JS
He usado principalmente CSS para este reloj. Hay un componente JS que actualiza los atributos en el reloj div con la hora actual, pero fuera de eso, todo el reloj es CSS.
demostración en vivo aquí: http://jsbin.com/nuvag/3
código fuente aquí: http://jsbin.com/nuvag/3/edit
fuente
GNUPLOT
fuente
xterm -t -e "gnuplot -e 'set term tek40xx' clock.plot"
(con parpadeos molestos)Código MATLAB simple, escrito principalmente para apreciar el marcado de 24 horas en el trabajo.
mientras que 1 runWatch () pausa (0.6); fin
fuente
Python (con matplotlib)
Aquí hay un reloj muy básico que se ejecuta en el escritorio. Cambie
interval
de la segunda a la última línea para1
obtener un movimiento continuo en lugar de una marca por segundo.fuente
Mathematica
Utilizando más código de demostración del navegador de ayuda de Mathematica del que probablemente debería, obtengo
con
fuente
C + El Cairo + xcb
Básicamente estafó la solución postscript y tradujo a El Cairo. :)
Algunos trucos al hacer esto: ps usa grados, Cairo usa radianes; ps orienta la ventana con + y arriba , xcb la orienta con + y abajo .
fuente
Haga clic en ejecutar. Solo se muestra en incrementos de 30 minutos porque el reloj es un solo emoji.
fuente
Crear relojes analógicos tiene algún tipo de atracción con las personas que aprenden programación. De hecho, enseño una clase de JavaScript este año y mis alumnos se divirtieron mucho cuando implementamos un reloj analógico usando p5.js ...
El código fuente para el reloj analógico está disponible en https://github.com/mveteanu/JSCourse
fuente