Autor | Thema: Bahnsteiguhr | | Datum:18.03.02 20:55 
| |
hallo liebe profaner,
ein basicumsteiger möchte für seine modellbahnsteuerung eine
typische Bahnsteig-analoguhr,die evt.auch in der größe veränderbar ist programmieren.gibt es schon quellcodes oder wer kann helfen?
mfg ulrich
|
| | Datum: 18.03.02 21:53 
(andreas@andreas-miethe.de) | |
Hallo Ulrich,
hier ein Beispiel fuer eine Analoguhr.
Gruss
Andreas
'---------------------------------
Declare xi%,yi%
Declare ende%
Proc Rechnen
Parameters Winkel!
Declare x!,y!
Winkel! = Winkel! - (@PI()/2) 'Winkel um 90 Grad zurück
x! = @COS(Winkel!)
y! = @SIN(Winkel!)
x! = x! * (@Width(%hwnd) / 2) 'Radius korrigieren
y! = y! * (@Height(%hwnd) / 2)
x! = x! + (@Width(%hwnd) / 2) 'auf Fenstermittelpunkt setzen
y! = y! + (@Height(%hwnd) / 2)
xi%= @INT(x!) 'Nur Ganzzahlen
yi%= @INT(y!)
EndProc
Proc Zeiger
Declare Winkel%
Declare Hour%,Min%,sec%,x%,y%
Hour% = @VAL(left$(@Time$(0),2))
Min% = @VAL(Mid$(@Time$(0),4,2))
sec% = @VAL(left$(@Time$(1),2))
Ellipse 0,0-@Width(%hwnd),@Height(%hwnd) 'Kreis zeichnen
Rechnen (2* @PI()/60)*sec% 'Sekundenzeiger ausrechnen
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)'auf Fenstermittelpunkt setzen
LineTo xi%,yi% 'Sekundenzeiger zeichnen
Rechnen (2* @PI()/60)*min% 'Minutenzeiger
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)
LineTo xi%,yi%
If hour% > 12
Hour% = hour% - 12
EndIf
Rechnen (2* @PI()/12)*hour% 'Stundenzeiger
MoveTo (@Width(%hwnd) / 2), (@height(%hwnd) / 2)
LineTo xi%,yi%
Settext %hwnd,Time$(0) + ":" + left$(@Time$(1),2)
EndProc
Proc GoUhr
Declare Ende%
SetTimer 1000
Let Ende% = 0
WHILENOT Ende%
WaitInput
If %wmTimer
Zeiger
EndIf
ENDWHILE
KillTimer
EndProc
window 0,0-300,340
settruecolor 1
whilenot ende%
GoUhr
wend
end
'---------------------------------
|
|
|