8

启动代码时如何设置 startpos(我的海龟广场的左上角)?

我并不是说它从中间开始,然后到那个位置。

我想让乌龟从那里开始。

4

6 回答 6

11

托马斯安东尼的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()

海龟的第一次出现应该在窗口的左上角。

于 2017-02-09T06:27:57.440 回答
8

您可以将世界坐标设置为其他值。例如,要从左下角附近开始,请执行以下操作:

turtle.setworldcoordinates(-1, -1, 20, 20)

这将使整个窗口为 21x21“单位”,并将原点放置在距底部和左侧边缘一个单位的位置。您命令的任何位置也将根据这些单位(而不是像素)。

于 2017-02-09T03:16:04.920 回答
7

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

于 2015-07-03T13:58:38.820 回答
2

只需将您的坐标系转换为海龟的坐标系即可。假设您想从正方形的左上角开始 - 为了参数,我们将其称为 (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()

但这几乎没有那么有趣:(

于 2013-02-05T17:25:39.703 回答
0

需要考虑的几个可能的陷阱:

  • 用 just 创建一个新的 TurtleTurtle()可以让它出现一瞬间。
  • 仅仅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
于 2021-10-04T14:51:40.207 回答
-1

在代码的开头,定义了海龟之后,你可以这样做:

tom.penup()
tom.goto(x coordinate that you want, y coordinate that you want)
tom.pendown()

这将使乌龟不可见。
然后转到 x 和 y 给定的位置,它使海龟的轨迹再次可见。

于 2020-02-23T08:30:37.937 回答