Profis stoßen oft auf Situationen, in denen ihre Turtle-Animationen mit einer unerwünschten Geschwindigkeit ausgeführt werden. Während die Methode „tracer()“ und das Experimentieren mit verschiedenen Zahlen darin unzureichend erscheinen mögen, gibt es anderswo eine einfache, aber effektive Lösung.
Um mit Turtle eine normale Animationsgeschwindigkeit zu erreichen, ist es wichtig, sich nicht auf while True: oder zu verlassen sleep() wird in einer ereignisgesteuerten Umgebung erstellt. Diese Techniken sind für Schildkröten nicht optimal. Stattdessen kann die Verwendung eines Turtle-Timer-Ereignisses einen effizienteren Ansatz bieten.
Der folgende Code zeigt, wie eine timerbasierte Windmühlenanimation implementiert wird:
<code class="python">from turtle import Screen, Turtle def rectangle(t): t.forward(50) t.left(90) t.backward(5) t.pendown() for _ in range(2): t.forward(10) t.right(90) t.forward(120) t.right(90) t.penup() def windmill(t): for _ in range(4): t.penup() rectangle(t) t.goto(0, 0) screen = Screen() screen.tracer(0) turtle = Turtle() turtle.setheading(90) def rotate(): turtle.clear() windmill(turtle) screen.update() turtle.left(1) screen.ontimer(rotate, 40) # adjust speed via second argument rotate() screen.mainloop()</code>
Durch Verwendung der ontimer()-Methode haben Sie über das zweite Argument, das das Zeitintervall in Millisekunden zwischen den einzelnen Animationsbildern darstellt, eine genaue Kontrolle über die Animationsgeschwindigkeit. Durch Anpassen dieses Werts können Sie die Geschwindigkeit auf das gewünschte Niveau einstellen und so eine flüssige und optisch ansprechende Animation erzielen.
Das obige ist der detaillierte Inhalt vonSo optimieren Sie die Geschwindigkeit der Turtle-Animation in Python: Warum trumpft ontimer() im True- und Sleep()-Modus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!