Crie um relógio analógico
Objetivo: criar um relógio analógico funcional usando qualquer linguagem de programação.
Requisitos:
- Seu relógio deve apresentar pelo menos os ponteiros de hora e minuto.
- O relógio produzido pode estar na forma de uma imagem, uma animação ou arte ASCII.
- Espera-se que o relógio mostre a hora local.
Opcional:
- Você pode fazer com que o relógio mostre o ponteiro dos segundos, além dos minutos e horas.
- Você também pode configurar o fuso horário, se desejar.
- Você é livre para escolher se pode negligenciar ou lidar com problemas relacionados a segundos bissextos.
- Você pode pensar no que acontece ao seu programa se o usuário ajustar o relógio do sistema ou se ocorrer uma alteração na luz do dia.
Como este é um concurso de popularidade , seja criativo e desenhe alguns relógios bonitos e bonitos para merecer os votos positivos. A resposta mais votada vence , com a exceção de que não aceitarei minha própria resposta.
Por fim, é recomendável (mas não obrigatório) que você publique pelo menos uma captura de tela (ou saída de texto no caso de arte ASCII) do seu relógio em sua resposta. Dessa forma, as pessoas não precisarão compilar e executá-lo para ver o que é.
Esta pergunta pretende reviver uma pergunta excluída.
Observe que não é uma duplicata dessa outra pergunta . Essa pergunta era um código de golfe pedindo arte ASCII. Este não é restrito à arte ASCII e , em vez disso, é um concurso de popularidade ; portanto, espera-se que as respostas sejam muito diferentes.
fonte
xclock
. Requer que o xclock seja instalado.Respostas:
SVG + Javascript
▶▶▶ demonstração ao vivo aqui ◀◀◀
Isso usa as funções de animação integradas do SVG para girar as mãos, com um pouco de Javascript adicional para buscar a hora local e definir as posições iniciais das mãos. Funciona bem no Chrome e no Safari e deve ser compatível com os navegadores mais modernos, pois não usa efeitos de filtro.
fonte
Java 8
Fiz um relógio que muda de cor de acordo com a hora do dia, mostrando a hora local. À medida que o tempo passa, ele muda lentamente de cor, usando cores mais brilhantes de dia e cores mais escuras à noite.
A janela é redimensionável e o relógio é redimensionado automaticamente para o tamanho que você escolher.
Além disso, se o usuário ajustar o relógio do sistema ou se ocorrer uma alteração no horário de verão, o relógio refletirá isso automaticamente.
Existem dois formulários para executá-lo:
Executando o
ClockDemo
arquivo, iejava clock.ClockDemo
. Isso abrirá uma janela e você verá o relógio lá.Executando o
ClockSave
arquivo, iejava clock.ClockSave filename width height [HH:mm:ss]
. Isso apenas salvará o relógio em um arquivo PNG com o nome, a largura e a altura do arquivo. O relógio será desenhado com o tempo determinado, ou se isso for omitido, com o tempo atual. Por exemplo, se você executá-lo,java clock.ClockSave clock.png 600 500 12:38:24
ele salvará o relógio em uma imagem de 600x500 em umclock.png
arquivo e o relógio será exibido 12:38:24. Use horas no intervalo de 00 a 23.Screenshots
Aqui estão algumas capturas de tela e arquivos gerados:
00:36:50:
02:38:51 AM:
06:42:13 AM:
11:15:28:
05:02:37 PM:
07:11:30:
09:29:34 PM:
Código fonte
Separei a fonte em cinco arquivos diferentes em um pacote chamado
clock
.Também disponível no GitHub .
ClockDemo.java
ClockSave.java
JClock.java
ClockPaint.java
CoolPaint.java
fonte
Freepascal
Este relógio exibe a hora, data e fase da lua. No entanto, diferentemente dos relógios mecânicos que têm uma pequena janela para exibir a fase da lua, no meu relógio a face inteira é usada para exibi-la. Hoje 14 de fevereiro é lua cheia. Você pode ver a produção esperada nos próximos dias abaixo.
fonte
Um simples que meu amigo escreveu na TI 84 BASIC:
fonte
Mathematica
Um relógio simples e funcional que exibe a hora local:
Opções padrão
Medidor de relógio desenhado à mão
Existem alternativas para o medidor de relógio interno. Aqui está um.
A varredura contínua foi implementada para os ponteiros de horas e minutos. Eles atualizam junto com a segunda mão.
fonte
Postscript - originalmente escrito para ajudar meus filhos a aprender a contar as horas. A página 1 mostra a hora atual, as páginas 2 a 4 são páginas para os alunos. As páginas para os alunos usam
rand
para criar horários aleatórios; portanto, eles são diferentes sempre que você o processa. Use o Ghostscript para criar uma versão em PDF se você quiser mostrar a hora atual. Tamanho para papel A4.fonte
rand
dará os mesmos resultados todas as vezes? A menos que você o semente de alguma forma, talvez(/dev/rand)(r)file read pop srand
.srand
se deseja fixar sua posição na sequência de números pseudo-aleatórios do PS. Para citar o PSLRM: "Executarsrand
com um valor específico faz com que chamadas subseqüentesrand
gerem uma sequência reproduzível de resultados".1 srand
antes de executar os programas do usuário. Portanto, você deve introduzir sua própria entropia para obter uma sequência não reproduzível. Não testei com o Distiller, mas é isso que o Ghostscript faz.gsnd -q -dBATCH -c 'rand ='
sempre me dá 16807.Demonstração: http://jsfiddle.net/kelunik/Vuuq8/7/embedded/result/
HTML
CSS
Javascript
fonte
Aqui está um em processamento:
fonte
HTML + CSS3 + JS
Eu usei principalmente CSS para este relógio. Há um componente JS que atualiza os atributos na div do relógio com a hora atual, mas fora disso, o relógio inteiro é CSS.
demonstração ao vivo aqui: http://jsbin.com/nuvag/3
código fonte aqui: http://jsbin.com/nuvag/3/edit
fonte
GNUPLOT
fonte
xterm -t -e "gnuplot -e 'set term tek40xx' clock.plot"
(com pisca irritantes)Código MATLAB simples, escrito principalmente para apreciar a discagem de 24 horas no trabalho.
enquanto 1 runWatch () pausa (0,6); fim
fonte
Python (com matplotlib)
Aqui está um relógio muito básico que roda na área de trabalho. Altere
interval
da 2ª para a última linha para1
para movimento contínuo em vez de um tique por segundo.fonte
Mathematica
Usando mais código de demonstração do navegador de ajuda do Mathematica do que provavelmente deveria, recebo
com
fonte
C + Cairo + xcb
Basicamente rasgou a solução postscript e traduziu para o Cairo. :)
Algumas dicas ao fazer isso: ps usa graus, o Cairo usa radianos; ps orienta a janela com + y para cima , xcb orienta com + y para baixo .
fonte
Clique em executar. Ele é exibido apenas em incrementos de 30 minutos porque o relógio é um único emoji.
fonte
Criar relógios analógicos tem algum tipo de atração com as pessoas aprendendo programação. Na verdade, eu ensino uma aula de JavaScript este ano e meus alunos se divertiram muito quando implementamos um relógio analógico usando o p5.js ...
O código fonte do relógio analógico está disponível em https://github.com/mveteanu/JSCourse
fonte