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))
TA贡献1848条经验 获得超2个赞
除了@Artyer 的出色答案 (+1) 之外,不要忘记forward()
, backward()
, left()
,right()
它们都是相对位置操作,而不是绝对操作goto()
和setheading()
。使用提供的相关操作可能需要重新考虑您的图形。
在紧要关头,你总是可以做一些丑陋的事情,比如:
t.setx(t.xcor() + 10)
添加回答
举报