geloescht_FISI-Powergirl Geschrieben 28. August 2008 Geschrieben 28. August 2008 Hallo, ich hoffe, ihr könnt mir helfen... :confused: In der Berufsschule sollten wir eine Analoguhr in einer Windows-Anwendung programmieren. Eine Digitaluhr im Textfeld habe ich schon programmiert. Dann habe ich die Analoguhr "gezeichnet". Nun möchte ich, dass sich die Zeiger von links nach rechts bewegen. Nur ich weiß nicht, wie das geht... Der Lehrer ist echt unmöglich, der will uns nie zeigen, wie das geht... :upps Hier folgender Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Analoguhr { public partial class Form1 : Form { DateTime zeit; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { zeit = DateTime.Now; } private void timer1_Tick(object sender, EventArgs e) { zeit = DateTime.Now; textBox1.Text = zeit.Hour.ToString() + ":" + zeit.Minute.ToString() + ":" + zeit.Second.ToString(); // Kreis zeichnen Graphics g = CreateGraphics(); g.DrawEllipse(Pens.Black, 100, 75, 200, 200); // Mittelpunkt zeichnen Bitmap bm = new Bitmap(500, 500); bm.SetPixel(200, 175, Color.Black); g.DrawImage(bm, 0, 0); // großer Zeiger Point P1 = new Point(200, 75); Point Mittelpunkt = new Point(200, 175); g.DrawLine(Pens.Black, Mittelpunkt, P1); // kleiner Zeiger Point P2 = new Point(280, 175); g.DrawLine(Pens.Black, Mittelpunkt, P2); // Sekundenzeiger Point P3 = new Point(150, 260); g.DrawLine(Pens.Red, Mittelpunkt, P3); } } } Für eure Hilfe bin ich sehr dankbar! Zitieren
TDM Geschrieben 28. August 2008 Geschrieben 28. August 2008 x = sinus(winkel) y = cosinus(winkel) 0 entspricht der 12 Dann einfach 360/60 * [sekunden|Minuten] * (PI/180) und du hast den Winkel. Vom Mittelpunkt nach X;Y eine Linie zeichnen und freuen weil geht. Zitieren
geloescht_FISI-Powergirl Geschrieben 28. August 2008 Autor Geschrieben 28. August 2008 Danke!!! Werd ich mal ausprobieren!! Zitieren
TDM Geschrieben 28. August 2008 Geschrieben 28. August 2008 Korrektur: x = sinus(winkel) * Radius der Uhr y = cosinus(winkel) * Radius der Uhr Zitieren
geloescht_FISI-Powergirl Geschrieben 28. August 2008 Autor Geschrieben 28. August 2008 Danke, werd ich mal am Wochenende ausprobieren! Zitieren
flashpixx Geschrieben 28. August 2008 Geschrieben 28. August 2008 Nur noch einmal als Hinweis, die Funktionen sin und cos in Java erwarten den Winkel im Bogen- und nichit im Gradmaß Phil Zitieren
TDM Geschrieben 29. August 2008 Geschrieben 29. August 2008 Nur noch einmal als Hinweis, die Funktionen sin und cos in Java erwarten den Winkel im Bogen- und nichit im Gradmaß Phil Deswegen * (Pi/180) um den Radiant auszurechnen. Zitieren
geloescht_FISI-Powergirl Geschrieben 29. August 2008 Autor Geschrieben 29. August 2008 Und wie findet man den Radius des gezeichneten Kreises raus? Ich meine, es gibt ja keinen Lineal, sondern nur x und y Werte und so. Zitieren
flashpixx Geschrieben 29. August 2008 Geschrieben 29. August 2008 g.DrawEllipse(Pens.Black, 100, 75, 200, 200); Kleiner Wink mit dem Baumstamm Phil Zitieren
geloescht_FISI-Powergirl Geschrieben 30. August 2008 Autor Geschrieben 30. August 2008 ok danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.