"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تحسين سرعة الرسوم المتحركة للسلحفاة في بايثون: لماذا يتفوق ontimer()‎ على True وSleep()؟

كيفية تحسين سرعة الرسوم المتحركة للسلحفاة في بايثون: لماذا يتفوق ontimer()‎ على True وSleep()؟

تم النشر بتاريخ 2024-12-23
تصفح:865

How to Optimize Turtle Animation Speed in Python:  Why ontimer() Trumps while True and Sleep()?

تحسين أداء الرسوم المتحركة للسلحفاة في بايثون

غالبًا ما يواجه المحترفون مواقف يتم فيها تنفيذ الرسوم المتحركة للسلحفاة بسرعة غير مرغوب فيها. في حين أن طريقة التتبع () وتجربة الأرقام المختلفة داخلها قد تبدو غير كافية، إلا أن الحل البسيط والفعال يكمن في مكان آخر.

لتحقيق سرعة الرسوم المتحركة العادية باستخدام Turtle، من الضروري تجنب الاعتماد على while True: أو يتم إنشاء Sleep() ضمن بيئة تعتمد على الأحداث. هذه التقنيات ليست مثالية للسلاحف. بدلاً من ذلك، يمكن أن يوفر استخدام حدث مؤقت السلحفاة أسلوبًا أكثر كفاءة.

يوضح الكود التالي كيفية تنفيذ الرسوم المتحركة لطاحونة الهواء المستندة إلى المؤقت:

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()

من خلال استخدام طريقة ontimer()، لديك تحكم دقيق في سرعة الرسوم المتحركة من خلال الوسيطة الثانية، والتي تمثل الفاصل الزمني بالمللي ثانية بين كل إطار للرسوم المتحركة. يتيح لك ضبط هذه القيمة ضبط السرعة إلى المستوى المطلوب، مما يوفر رسومًا متحركة سلسة وجذابة بصريًا.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3