亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何讓雪花旋轉得更順暢?

如何讓雪花旋轉得更順暢?

牧羊人nacy 2023-09-12 19:56:07
我是Python動畫的新手,雖然已經設法使用動畫使雪花旋轉,但它旋轉得不太順利...我附上了下面的代碼,有人可以建議我該怎么做才能讓它旋轉得更順暢嗎?import turtleimport timebob = turtle.Turtle()bob.ht()screen = turtle.Screen()bob.speed(100)screen.tracer(0, 0)n = 0bob.pencolor("blue")bob.pensize(5)def vshape():  bob.rt(25)  bob.fd(50)  bob.backward(50)  bob.lt(50)  bob.fd(50)  bob.backward(50)  bob.rt(25)def snowflakeArm():  for x in range(4):    bob.fd(30)    vshape()  bob.backward(120)    def snowflake(n, x, y):  bob.seth(n)  bob.pu()  bob.setpos(x ,y)  bob.pd()  for x in range(6):    snowflakeArm()    bob.rt(60)while True:  time.sleep(0.02)  bob.update()  bob.clear()  snowflake(n, 0, 0)  snowflake(n, 350, 0)  snowflake(n, -350, 0)  snowflake(n, 0, 350)  snowflake(n, 0, -350)  n += 10我嘗試過減少睡眠時間以及減少旋轉量,但仍然沒有結果......
查看完整描述

1 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

讓我擔心的是,您能夠bob.update()成功調用,因為update()這不是隨 Python 3 或 Python 2 發布的標準turtle.py 中的方法。Turtle您可能正在使用較舊的或非標準的turtle 實現,因此某些下面可能需要調整。


讓我們使用一個turtle事件,而不是引入time.sleep()與turtle自己的事件處理程序不同步的:ontimer()


from turtle import Screen, Turtle


def vshape():

    turtle.right(25)

    turtle.forward(50)

    turtle.backward(50)

    turtle.left(50)

    turtle.forward(50)

    turtle.backward(50)

    turtle.right(25)


def snowflakeArm():

    for _ in range(4):

        turtle.forward(30)

        vshape()


    turtle.backward(120)


def snowflake(angle, position):

    turtle.setheading(angle)


    turtle.penup()

    turtle.setposition(position)

    turtle.pendown()


    for _ in range(360 // 60):

        snowflakeArm()

        turtle.right(60)


angle = 0


def snowflakes():

    global angle


    turtle.clear()


    snowflake(angle, (0, 0))

    snowflake(angle, (350, 0))

    snowflake(angle, (-350, 0))

    snowflake(angle, (0, 350))

    snowflake(angle, (0, -350))


    screen.update()


    angle = (angle + 10) % 360


    screen.ontimer(snowflakes, 25)  # repeat 25 milliseconds from now


screen = Screen()

screen.tracer(False)


turtle = Turtle()

turtle.hideturtle()

turtle.pencolor('blue')

turtle.pensize(5)


snowflakes()


screen.exitonclick()

這還應該允許我們通過單擊窗口來干凈地退出程序,而不會生成所有這些警告消息。


查看完整回答
反對 回復 2023-09-12
  • 1 回答
  • 0 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號