Entwickler-Ecke
Sonstiges (Delphi) - Analoguhr
Arbengie - Do 03.02.11 16:29
Titel: Analoguhr
Hi ic bin dabei eine Analoguhr in Delphi zu machen mit TCanvas doch bei der Berechnung der Sekundenzeigerposition hören meine Mathekenntnisse auf :?.
Habe das hier benutze, doch da kommen total komische Zeigepostiotionen raus.
http://www.bergt.de/workshop/delphi/html/loesung311.htm
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TfrmMain.tmrTimeTimer(Sender: TObject); var wSek, x, y, r: integer; begin s := FormatDateTime('ss', Time); edtTime.Text := s; r := 50; wSek := trunc(StrToInt(s) * (((2 * pi) / 60)) - pi / 2); x := Trunc(Cos(wSek)* r); y := Trunc(Sin(wSek)* r); x := x + (Width div 2); y := y + (Height div 2); newHaus.showClock(frmMain, x, y); end;
procedure THaus.showClock(kContainer: TForm; x, y: integer); begin kContainer.Canvas.MoveTo(zX + (zVar * 2) + (zVar div 2), zY - zVar + (zVar div 4)); kContainer.Canvas.LineTo(x, y); end; |
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 03.02.2011 um 15:30
Crombo - Do 03.02.11 17:08
Hallo,
Ein Kreis hat 360 Grad, eine Minute 60 Sekunden --> Jede Sekunde wird der Sekundenzeiger um 6 Grad im Uhrzeigersinn verschoben. Mal dir das am besten mal auf ein Blatt Papier und überleg dir, wie du die Zeigerposition von Hand berechnen würdest. Das Übertragen in Programmiersprache dauert dann gerade noch ne Minute.
Crombo
FinnO - Do 03.02.11 17:10
Moin,
wenn du aber der Meinung bist, deine mathematischen Kenntnisse versagten, schau dir doch Sinus und Kosinus einmal an.
Arbengie - Do 03.02.11 18:48
ich check das mit sinus cosinus usw nich -.-
Gerd Kayser - Do 03.02.11 20:23
Arbengie hat folgendes geschrieben : |
Hi ic bin dabei eine Analoguhr in Delphi zu machen mit TCanvas doch bei der Berechnung der Sekundenzeigerposition hören meine Mathekenntnisse auf |
Schau Dir das einmal an:
http://delphiforfun.org/programs/clock_angle.htm
Da findest Du eine Demo und die Sourcen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!