Bahnhofsuhr - Martins Homepage

Direkt zum Seiteninhalt

Hauptmenü:

Bahnhofsuhr

Programmierkurs > Unterrichtsprojekte

Funktion
Nun ja, sollte jedem klar sein!

Design
Hier kommt die Unterprogrammtechnik zum Tragen: Das Zifferblatt und die Zeiger besteht aus radialen Linien, die sich nur in der Länge, Dicke und Winkel unterscheiden. Die Zeiger werden von einem Sekundentimer aktualisiert, Zeitquelle ist aber die “Now”-Funktion. Tip: Nachdem das Zifferblatt gezeichnet wurde, setze die “AutoRedraw” Eigenschaft der PictureBox auf False. Dann bleibt beim sekündlichen Löschen (Cls) das Zifferblatt stehen
     
Aufbau im Unterricht
1. Zeichnen von Linien verschiedener Dicke in eine Picture Box
2. Drehender Zeiger: Transformation vom Einheitskreis auf Picture Box

x, y -> left, top.  left = a*x + b; top=c*y + d
(-1, 1) -> (0, 0) ; (1, -1) -> (W, H).   (Bild malen!)

Transformation der x-Koordinaten
(1)  0 = a*-1 + b.  (2) W = a*1 + b. (1+2) W = 2b -> b = W/2

Aus (1) a=b. => left = W/2*x + W/2 = (x+1)*W/2

Transformation der y-Koordinaten
(3) 0 = c*1 + d.  H = c*-1 + d  (3+4)  d = H/2

Aus (3) c = -d => top = -H/2y + H/2 = (1-y)*H/2


Normalerweise: x = cos(alpha), y = sin(alpha). Hier: x = sin(alpha), y = cos(alpha).

3. Neue Funktion: Zifferblatt: Sekundeneinteilung -> man braucht dieselben Formeln

4. Neue Funktion: radial für Zeiger und Zifferblatt und Ableitung der Sekunde aus DateTime

5. Restliche Striche am Zifferblatt und Zeiger, Smoothing

Erweiterung
Eine Uhr, die nur Stunden von 0 bis 12 zeigt, ist mehrdeutig: Ist mit 1 Uhr nun die Nachmittags-Stunde gemeint, also 13 Uhr, oder die nächtliche? Eine Erweiterung stellt ein gelbes Segment dar (siehe screen shot), welches in 24 Stunden einmal umläuft. Es repräsentiert die Sonne, welche um Mittag oben d.h. im höchsten Punkt steht.

Hier ist das Programm

 
Zurück zum Seiteninhalt | Zurück zum Hauptmenü