Analoge Uhr auf einem Formular programmieren



  • Hallo zusammen
    Ich muss eine eine analoge Uhr auf einem Form programmieren. D.H die Zeiger(std, min, sek) sollten mit Linien gemacht werden und sich alle 0.5 sek stellen. Bin neu beim C++, kann mir jemand helfen? Danke



  • Willst du mit C++ und eine Grafiklib oder mit MFC?

    Hast du schon begonnen damit?
    Wenn ja wo liegt dein Problem?
    Hier bekommst du hilfe wenn du eine konkrete Frage stellst.
    Wenn du ein Projekt daraus amchen willst dann verschieben ich dich.



  • Wo liegt, denn das Problem? Beim zeichnen, oder Berechnen von den Linien?



  • Ich habe die Aufgabe, die aktuelle Uhr anzuzeigen. Digital und analog.
    Die Digitale Anzeige habe ich gemacht. Jetzt sollte ich noch eine analoge Anzeige machen. Habe jedoch keine Ahnung, wie ich das Anstellen soll. Folgende Stichworte habe ich bekommen: Methoden OnPaint, MoveTo, LineTo, Circle, Sin/Cos.



  • Das geht schon in die Grafikprogrammierung rein. Damit musst du dich befassen. Du muss also alle Linien mit den angegeben Methoden von CDC zeichen.



  • Naja, die Stichworte sind ja völlig korrekt, aber wie hast denn du ohne die Kenntnis der Paint Funktionen die digi. Anzeige geschafft?

    Tschau



  • hi. habe es in einem C++ Buch gefunden. Aber blicke trotzdem nicht durch bei der analogen Anzeige. Wie muss ich vorgehen?



  • Also dein Problem ist es, dass du keine Ahnung hast wie du die XY-Koordinaten für deine Zeiger berechnen sollst, richtig?

    Der Sekunden- und Minutenzeiger hat 60 Stellen auf dem Kreis deiner Uhr, somit musst du die 360° durch 60 teilen was 6 ergibt, jede Minute liegt somit 6° auseinander, sprich die Minute 53 wäre damit 6*53 Grad von 0° (also oben in der Mitte) entfernt, Die Position auf dem Kreis kannst du im Bogenmaß ganz leicht berechnen und hast somit deine Position aufdem Kreis und den Mittelpunkt kennst du ja, so kannst du ja ganz einfach ne Linie Zeichnen.
    Zu den Zeichenfunktionen solltest du einfach mal in die msdn schauen.

    Wenn das Rechnen ein Problem ist, dann solltest du dir über google ein paar Matheseiten mit dem Thema Trigonometrie suchen, gibt da viele gute Deutsche im Netz (leider sind meine Bookmarks weg, sonst hätte ich dir ein paar nennen können)



  • Vielen Dank. Jedoch ist das rechnen nicht das Problem. Sondern wie mache ich, dass der Zeiger sich alle 0,5 sek bewegt und das der " alte Strich" wieder weg geht?



  • Die Uhr wird sowieso immer wieder neu gezeichnet bwz mit InvalidateRect teilweise neu gezeichnet.
    Somit ist das nicht dein Problem.
    Du musst einfach nur die Uhr zeichnen wie sie sein soll. Den Rest macht MFC.
    Sollte das aber zum flackern anfangen wird es etwas schwieriger. Aber das kannst du dann machen wenn der Rest steht.



  • Wie wird die Aktualisierung am besten gelöst?



  • Danke. Werde es probieren.


Anmelden zum Antworten