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

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

定義一個相對的go-to函數——python烏龜

定義一個相對的go-to函數——python烏龜

開心每一天1111 2021-12-26 10:26:06
解決 python 海龜中的一個問題,我需要使用海龜在正方形內繪制設計并將其中許多正方形放置在所需的坐標處。我當前的設計使用該goto(x,y)函數,但很明顯,在不同位置調用它們時,設計代碼仍在原始位置調用。有沒有辦法制作相對于正方形的定位功能或任何其他解決方法?我了解海龜的基礎知識,但我仍然是一個初學者。干杯編輯:代碼的小例子(適用于在 0,0 處繪制的正方形,但是當正方形放置在不同的 x,y 坐標時,文本不會隨之移動)pencolor('black')goto(5, 5)write('MITSUBISHI', font=('Verdana', '22', 'bold'))penup()
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

如果海龜在位置向量 (x, y) 處,并且您想將其移動,例如向右移動 3 次和向上移動 5 次,您只需將其添加到坐標中,因此海龜需要移動到(x + 3, y + 5)。幸運的是,turtle.Vec2D支持這樣的加法,你可以goto在向量上使用。您可以通過以下方式獲取當前位置turtle.pos()


import turtle


def goto_relative(dx, dy=None):

    """Moves the automatic global turtle by dx and dy (Or a given vector)"""

    goto_relative_on_turtle(turtle, dx, dy)


def goto_relative_on_turtle(t, dx, dy=None):

    """Moves al turtle by dx and dy (Or a given vector)"""

    if dy is None:

        dx, dy = dx

    t.goto(t.pos() + turtle.Vec2D(dx, dy))


查看完整回答
反對 回復 2021-12-26
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

除了@Artyer 的出色答案 (+1) 之外,不要忘記forward()backward()left(),right()它們都是相對位置操作,而不是絕對操作goto()setheading()。使用提供的相關操作可能需要重新考慮您的圖形。

在緊要關頭,你總是可以做一些丑陋的事情,比如:

t.setx(t.xcor() + 10)


查看完整回答
反對 回復 2021-12-26
  • 2 回答
  • 0 關注
  • 348 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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