启动代码时如何设置 startpos(我的海龟广场的左上角)?
我并不是说它从中间开始,然后到那个位置。
我想让乌龟从那里开始。
托马斯安东尼的setworldcoordinates()
解决方案是可行的(+1),但这是一个棘手的功能(很容易弄乱你的纵横比。)其他人提出了类似的建议:
penup()
goto(...)
pendown()
完全错误和/或没有阅读您的问题,因为您的用户会看到海龟移动到位。不幸的是,当您说“我的海龟广场”时,您的问题并不清楚,因为不清楚您是指窗户、您已绘制的正方形还是您将要绘制的正方形。
我将为您提供从窗口左上角开始的解决方案,您可以根据需要进行调整:
from turtle import Turtle, Screen
TURTLE_SIZE = 20
screen = Screen()
yertle = Turtle(shape="turtle", visible=False)
yertle.penup()
yertle.goto(TURTLE_SIZE/2 - screen.window_width()/2, screen.window_height()/2 - TURTLE_SIZE/2)
yertle.pendown()
yertle.showturtle()
screen.mainloop()
海龟的第一次出现应该在窗口的左上角。
您可以将世界坐标设置为其他值。例如,要从左下角附近开始,请执行以下操作:
turtle.setworldcoordinates(-1, -1, 20, 20)
这将使整个窗口为 21x21“单位”,并将原点放置在距底部和左侧边缘一个单位的位置。您命令的任何位置也将根据这些单位(而不是像素)。
Python 乌龟,改变起始位置:
import turtle
a = turtle.Turtle() #instantiate a new turtle object called 'a'
a.hideturtle() #make the turtle invisible
a.penup() #don't draw when turtle moves
a.goto(-200, -200) #move the turtle to a location
a.showturtle() #make the turtle visible
a.pendown() #draw when the turtle moves
a.goto(50, 50) #move the turtle to a new location
乌龟变得可见并开始在位置 -200、-200 处绘制并移动到 50、50。
以下是有关如何更改海龟状态的文档: https ://docs.python.org/2/library/turtle.html#turtle-state
只需将您的坐标系转换为海龟的坐标系即可。假设您想从正方形的左上角开始 - 为了参数,我们将其称为 (0, 10)。
现在,当您需要为海龟指定坐标时,只需平移它!
my_start = (0, 10)
如果您想移动到(10, 10)
- 右上角,只需提供新坐标:
>>> new_position = (10 - my_start[0], 10 - my_start[1])
>>> new_position
(10, 0)
(10, 0)
在乌龟的东边 - 在乌龟的坐标系中,但对你来说它是(10, 10)
右上角!每个人都赢了!
你可以做
turtle.penup()
turtle.setx(my_start[0])
turtle.sety(my_start[1])
turtle.pendown()
但这几乎没有那么有趣:(
需要考虑的几个可能的陷阱:
Turtle()
可以让它出现一瞬间。up
用笔并不一定会隐藏乌龟本身。防止这些陷阱的解决方案:
t = turtle.Turtle(visible=False) # make invisible turtle
initial_speed = t.speed() # store its initial speed
t.speed(0) # set its movement speed to instant
t.up() # stop drawing
t.setpos(x_of_your_starting_position,
y_of_your_starting_position) # figure those out first...
t.speed(initial_speed) # set turtle's speed to initial value
t.showturtle() # make turtle appear in desired position
t.down() # resume drawing
在代码的开头,定义了海龟之后,你可以这样做:
tom.penup()
tom.goto(x coordinate that you want, y coordinate that you want)
tom.pendown()
这将使乌龟不可见。
然后转到 x 和 y 给定的位置,它使海龟的轨迹再次可见。