locked
Uhr Zeichnen! RRS feed

  • Question

  • Ich bin noch neu im Programmieren und ich wollte da mal in Small Basic mit der Funktion Turtle eine funktionierende Uhr programmieren.Dies funktioniert aber nicht . Ich weiß zwar wie man einen Kreis in Small Basic zeichnet aber ich brauch ja die Form einer Uhr und die bekomm ich nicht hin bin schon fast am verzweifeln.

    Hier mein Quellcode:

    For i=1 To 100 Step 1
      Turtle.Turn(3.6)
      Turtle.PenDown()
      Turtle.Move(5)
      Turtle.PenUp()
      Turtle.Move(1)
    EndFor

    Sunday, October 13, 2013 3:22 PM

Answers

  • As already stated by litdev, I think you would reach a much bigger amount of answering people, if you ask your question in English instead of German. Luckily though, I am able to understand German myself.

    However I am still not quite sure, where exactly your problem lies. Your current source code successfully draw a circle, which probably should be used as the outline of the clock. What exactly is your next problem trying to implement the clock? I will be just assuming that you are just trying to draw the hands of the clock. In order to achieve that, I would propose the following steps:

    • Retrieve the current second, minute and hour by using Clock.Second, Clock.Minute and Clock.Hour.
    • Calculate the angle between the desired position of each specific hand and the default 12 'o clock position.
    • Draw each hand the following way. Move your turtle to the center of the clock, with the pen being up. Let it face the 12 'o clock position afterwards. Now rotate it by the previously calculated angle and put your pen down. Afterwards just simple let the turtle move forward for the desired length of your hand and then proceed by moving back to the center of the clock and continuing with the next hand.

    I hope, this helps you with your current project and answers your question. Otherwise feel free to specify your question more precisely and I am gladly helping again.

    Also I have implemented a clock some time ago using GraphicsWindow for educational purposes. If you are interested in the source code for it just let me know.

    galgtonold

    German translation / summary:

    Ich bin mir nicht vollkommen sicher, worin genau Dein Problem besteht. Da dein aktueller Quelltext bereits erfolgreich einen Kreis zeichnet, gehe ich davon aus, dass das Problem darin besteht, die Zeiger zu zeichnen. Um das zu tun würde ich wie folgt vorgehen:

    • Zunächst die Sekunde, Minute und Stunde mit Clock.Second, Clock.Minute und Clock.Hour bestimmen.
    • Dann den Winkel berechnen, der zwischen deinen Zeiger und der 12-Uhr-Position eingeschlossen wird.
    • Schlussendlich den Zeiger folgendermaßen zeichen: Zunächst die Turtle in den Mittelpunkt der Uhr bewegen während der Stift nicht abgesenkt ist. Dann die Blickrichtung der Turtle nach oben (in Richtung 12 Uhr) blicken lassen. Sie nun um den zuvor berechneten Winkel drehen, dann um die gewünschte Zeigerlänge nach vorne bewegen und anschlißened wieder zum Mittelpunkt zurückkehren. Danach einfach das gleiche mit den anderen beiden Zeigern machen

    Ich hoffe, ich konnte dir mit der Erläuterung behilflich sein. Ansonsten frage gerne nocheinmal nach und spezifiziere dein Problem unter Umständen etwas genauer.

    Weiterhin habe ich in jünger Vergangenheit ein sehr ähnlihces Uhr-Projekt, jedoch mit Hilfe des GraphicsWindow gelöst. Wenn Dich der Quelltext davon interessiert, lass es mich einfach wissen.

    galgtonold

    • Proposed as answer by Martin6778 Wednesday, October 16, 2013 2:34 PM
    • Marked as answer by litdev Friday, November 1, 2013 7:11 PM
    Monday, October 14, 2013 6:37 PM
  • I am Martin9998 but I have forgotten my password so i have a new account.
    ok thank you that's a good explanation, but send me please the source code.

     Clock programs are already published here and here.

    • Marked as answer by litdev Friday, November 1, 2013 7:11 PM
    Wednesday, October 16, 2013 11:40 PM
    Answerer

All replies

  • Sorry the German translation is unclear to me what you try to do.
    Monday, October 14, 2013 5:51 PM
  • As already stated by litdev, I think you would reach a much bigger amount of answering people, if you ask your question in English instead of German. Luckily though, I am able to understand German myself.

    However I am still not quite sure, where exactly your problem lies. Your current source code successfully draw a circle, which probably should be used as the outline of the clock. What exactly is your next problem trying to implement the clock? I will be just assuming that you are just trying to draw the hands of the clock. In order to achieve that, I would propose the following steps:

    • Retrieve the current second, minute and hour by using Clock.Second, Clock.Minute and Clock.Hour.
    • Calculate the angle between the desired position of each specific hand and the default 12 'o clock position.
    • Draw each hand the following way. Move your turtle to the center of the clock, with the pen being up. Let it face the 12 'o clock position afterwards. Now rotate it by the previously calculated angle and put your pen down. Afterwards just simple let the turtle move forward for the desired length of your hand and then proceed by moving back to the center of the clock and continuing with the next hand.

    I hope, this helps you with your current project and answers your question. Otherwise feel free to specify your question more precisely and I am gladly helping again.

    Also I have implemented a clock some time ago using GraphicsWindow for educational purposes. If you are interested in the source code for it just let me know.

    galgtonold

    German translation / summary:

    Ich bin mir nicht vollkommen sicher, worin genau Dein Problem besteht. Da dein aktueller Quelltext bereits erfolgreich einen Kreis zeichnet, gehe ich davon aus, dass das Problem darin besteht, die Zeiger zu zeichnen. Um das zu tun würde ich wie folgt vorgehen:

    • Zunächst die Sekunde, Minute und Stunde mit Clock.Second, Clock.Minute und Clock.Hour bestimmen.
    • Dann den Winkel berechnen, der zwischen deinen Zeiger und der 12-Uhr-Position eingeschlossen wird.
    • Schlussendlich den Zeiger folgendermaßen zeichen: Zunächst die Turtle in den Mittelpunkt der Uhr bewegen während der Stift nicht abgesenkt ist. Dann die Blickrichtung der Turtle nach oben (in Richtung 12 Uhr) blicken lassen. Sie nun um den zuvor berechneten Winkel drehen, dann um die gewünschte Zeigerlänge nach vorne bewegen und anschlißened wieder zum Mittelpunkt zurückkehren. Danach einfach das gleiche mit den anderen beiden Zeigern machen

    Ich hoffe, ich konnte dir mit der Erläuterung behilflich sein. Ansonsten frage gerne nocheinmal nach und spezifiziere dein Problem unter Umständen etwas genauer.

    Weiterhin habe ich in jünger Vergangenheit ein sehr ähnlihces Uhr-Projekt, jedoch mit Hilfe des GraphicsWindow gelöst. Wenn Dich der Quelltext davon interessiert, lass es mich einfach wissen.

    galgtonold

    • Proposed as answer by Martin6778 Wednesday, October 16, 2013 2:34 PM
    • Marked as answer by litdev Friday, November 1, 2013 7:11 PM
    Monday, October 14, 2013 6:37 PM
  • I am Martin9998 but I have forgotten my password so i have a new account.
    ok thank you that's a good explanation, but send me please the source code.
    Wednesday, October 16, 2013 2:33 PM
  • I am Martin9998 but I have forgotten my password so i have a new account.
    ok thank you that's a good explanation, but send me please the source code.

     Clock programs are already published here and here.

    • Marked as answer by litdev Friday, November 1, 2013 7:11 PM
    Wednesday, October 16, 2013 11:40 PM
    Answerer