und als Feintuning könnte man jetzt das Berechnen der Koordinaten noch in eine Prozedur auslagern:
Delphi-Quellcode:
procedure GetCoors(winkel, radius: Float; var x, y: Integer)
begin
winkel := winkel * pi/180;
x := 639 + Round(cos(winkel)*radius);
y := 331 + Round(sin(winkel)*radius);
end;
(ungetestet, einfach mal so runtergetippert)
Du hast mehrfach im Programm immer wieder Berechnung, die könntest du damit zusammenfassen:
Delphi-Quellcode:
// Sekundenzeiger
GetCoors(sec * 6, r, x, y);
Canvas.Pen.Color:=clblack;
Canvas.Pen.Width:=1;
Canvas.MoveTo(639,331);
Canvas.LineTo(x,y);
"sec * 6" deshalb, weil sich die 60 Sekunden auf 360° aufteilen und die eigentliche Berechnung damit sec * 360 / 60 wäre. Und ohne Überprüfung per Taschenrechner wage ich zu behaupten, dass 360/60 = 6 ist.
An dem Himmel müsste man noch feilen, die Übergänge sind zu hart
hm, mal basteln...
PS: wenn ich gewusst hätte, dass es als ersten Preis ein Küßchen gab, hätt ich mich mehr ins Zeug gelegt