ipyturtle 是否缺少大部分完整的 turtle-graphics 模块?

Is ipyturtle missing much of the full turtle-graphics module?

我第一次尝试 Turtle,运行 遇到了一些麻烦。我正在使用 ipyturtle,这是一个小部件,可让您在 Jupyter 笔记本上内联使用 Turtle。它似乎缺少一些命令。例如:

from ipyturtle import Turtle
t = Turtle()
t

size = 10
angle = 20

t.reset()
for a in range(10):
    for i in range(100):
        t.right(1)
        t.forward(i/size)
    t.home()
    t.right(a*angle)

绘制第一行,然后抛出错误:

AttributeError: 'Turtle' object has no attribute 'home'

它似乎还缺少 goto()speed() 等关键命令。难道我做错了什么?如果它缺少命令,你怎么知道?我在工程环境中使用了相当多的 Python,但不熟悉 Github。我真的很感激有人解释浏览我上面链接的页面可能会嗅出可用命令列表。

我已经 运行 在 Repl.it 上尝试了以下非常相似的代码块并且它工作正常:

from turtle import Turtle
t = Turtle()

size = 15
angle = 20

for a in range(1, 19):  
  for i in range(100):
    t.right(1)
    t.forward(i/size)
  t.home()
  t.right(a*angle)

在此先感谢您的帮助!

查看 ipyturtle 代码,这些是支持的 turle 方法:

position(self)
forward(self, length)
back(self, length)
heading(self)
goto(self, x, y=None)
setpos(self, x, y=None)
setposition(self, x, y=None)
left(self, degree=None)
right(self, degree=None)
penup(self)
pendown(self)
isdown(self)
hideturtle(self)
showturtle(self)
isvisible(self)
reset(self)
pencolor(self,r=-1,g=-1,b=-1)

所以您关于 home()speed() 的看法是正确的,但是 goto() 似乎在那里。每个命令似乎也只有一个名称,而不是 Python turtle 中可用的大量别名(例如 forward()fd())。

t.home()调用可以替换为:

t.goto(0, 0)
t.setheading(0)

但在您的示例中,您随后立即执行 right(),因此我们可以将其合并到 setheading() 中。我相信以下内容应该适用于 ipyturtle,Repl.it 和标准 Python:

from turtle import Turtle

size = 10
angle = 20

t = Turtle()

for a in range(1, 19):
    for i in range(100):
        t.right(1)
        t.forward(i / size)
    t.goto(0, 0)
    t.setheading(-a * angle)