Binary Clock

Code-Stücke können hier veröffentlicht werden.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Binary Clock

Beitragvon mawe » Freitag 4. November 2005, 21:58

Hi!

Mal wieder ganz was wichtiges von mir :) Eine binäre Uhr:

Code: Alles auswählen

from Tkinter import *
import time

def get_time_array():
    l = []
    for i in time.localtime()[3:6]:
        for j in "%02i" % i:
            l.append(int(j))
    return l

def tick():
    bits = [1,2,4,8]
    t = get_time_array()
    for x in range(6):
        for y in range(4):
            y1 = 3-y
            if (t[x] & bits[y]) == 0: color = "blue"
            else: color = "red"
            c.itemconfigure("%s-%s" % (x,y1), fill=color)

def create_clock(event=None):
    c.delete("all")
    offset = 3
    size_x = c.winfo_width() / 6 - offset
    size_y = c.winfo_height() / 4 - offset -1
    for x in range(6):
        for y in range(4):
            c.create_oval(
                    x*(size_x+offset)+offset,
                    y*(size_y+offset)+offset,
                    x*(size_x+offset)+offset+size_x,
                    y*(size_y+offset)+offset+size_y,
                    fill="blue",tags="%s-%s" % (x,y))

root = Tk()
c = Canvas(width=200, height=150, bg="black")
c.pack(fill=BOTH, expand=1)
c.bind("<Configure>", create_clock)

create_clock()

while 1:
    tick()
    root.update()
    time.sleep(1)

root.mainloop()

Wer nicht weiss wie man sie abliest:
Die Spalten sind von links nach rechts: 2 für die Stunden, 2 für die Minuten und 2 für ... na? :)
Die Zeilen von unten nach oben haben die folgenden Werte: 1, 2, 4, 8
Einfach die Zahlenwerte der roten Punkte zusammenzählen (jeweils für Stunden, Min.. ) und man hat die Uhrzeit.
Alles klar? Viel Spass damit :)

Gruß, mawe
N317V
User
Beiträge: 504
Registriert: Freitag 8. April 2005, 13:23
Wohnort: München

Beitragvon N317V » Montag 7. November 2005, 10:13

Danke schön! So ist Angeberei richtig preiswert. ;-) Die Uhren sind ja nicht gerade billig.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.

Wie man Fragen richtig stellt
mangrove
User
Beiträge: 1
Registriert: Dienstag 6. Dezember 2005, 02:34
Wohnort: Bremen

Einmal ist immer das erste Mal.

Beitragvon mangrove » Dienstag 6. Dezember 2005, 03:30

Hallo mawe,

das ist die erste Antwort, die ich je in einem Forum geschrieben habe. Außerdem war es ein Erfolgserlebnis für mich, daß ich die Uhr zum Laufen gebracht habe. Als unbedarfter User erwartet man ja immer eine EXE, die man mit Draufklicken zum Laufen bringen kann. Und ein Fenster mit einem „graphischen” Erscheinungsbild. Für jemand, der gewohnt ist, daß alles mit Anklicken funktioniert (Anwendungen) oder in einem Browser läuft (HTML), fehlt bei Python am Anfang erst mal bißchen der Boden unter den Füßen. Da macht eine solche Uhr Mut.

Ich bin eben ein Anfänger. Hatte letztes Jahr schon mal angefangen. Lese gerade „Einführung in Python” (Lutz & Ascher, Verlag O'Reilly).

Viele Grüße,

mangrove
Ich bin Python-Neuling. Kenne bisher HTML, CSS und JavaScript.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder