Heim  >  Artikel  >  Backend-Entwicklung  >  So verlangsamen Sie Ihre Turtle-Animation in Python: Ersetzen Sie „while True:' durch „screen.ontimer()'?

So verlangsamen Sie Ihre Turtle-Animation in Python: Ersetzen Sie „while True:' durch „screen.ontimer()'?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-29 13:18:02527Durchsuche

How to Slow Down Your Turtle Animation in Python: Replacing `while True:` with `screen.ontimer()`?

So steuern Sie die Geschwindigkeit der Turtle-Animation in Python

In der Turtle-Bibliothek von Python wird die Geschwindigkeit der Animation oft als zu hoch empfunden . Dieser Artikel behebt das Problem und stellt einen überarbeiteten Codeausschnitt bereit, der die Animationsgeschwindigkeit auf ein überschaubareres Tempo anpasst.

Der bereitgestellte Code verwendet die Methode „tracer()“, um automatische Bildschirmaktualisierungen zu deaktivieren und so eine manuelle Steuerung der Aktualisierung zu ermöglichen Rate. Es verwendet jedoch die while True:-Schleife für eine konstante Animation, was zu einer schnellen Ausführung führen kann.

Um dieses Problem zu beheben, ersetzt der überarbeitete Code while True: durch eine screen.ontimer()-Ereignisfunktion. Diese Funktion plant ein wiederkehrendes Ereignis mit einer konfigurierbaren Verzögerung (in Millisekunden), das den Bildschirm aktualisiert und die Animation vorantreibt.

Hier ist der aktualisierte Code:

<code class="python">import turtle
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 Anpassen des zweiten Arguments (in Millisekunden) an ontimer() können Sie die Geschwindigkeit der Animation ändern. Niedrigere Werte führen zu langsameren Animationen, während höhere Werte zu schnelleren führen.

Das obige ist der detaillierte Inhalt vonSo verlangsamen Sie Ihre Turtle-Animation in Python: Ersetzen Sie „while True:' durch „screen.ontimer()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn