gpt4 book ai didi

Python 3.x turtle 速度极慢?

转载 作者:行者123 更新时间:2023-11-28 19:43:54 25 4
gpt4 key购买 nike

我发现 python 的 turtle 实现非常慢。我预计会有一些延迟,但不是等待相对简单的分形(具有 5 次迭代的科赫曲线)的几分钟。

即使在设置了 turtle.speed(0) 之后它仍然很慢。也许有一个错误,因为它不像文档中声称的那样是即时的?

answer建议通过隐藏窗口重新实现 turtle 。类似question没有得到答复。我是否遗漏了什么,或者正在重新实现要走的路?

这是我精简的代码(l-系统的创建几乎是瞬间完成的):

import turtle

def l_system(V, w, P, n):
current = w

for i in range(n):
current = [P[x] if x in P else x for x in list(current)]
current = ''.join(current)

return current

def run_turtle(var, start, rules, iters, angle, size, scale):
terry = turtle.Turtle()
terry.pensize(1)
terry.pencolor("blue")
terry.speed(0)

dist = size / ((iters + 1) ** scale)
positions = []
angles = []

instructions = l_system(var, start, rules, iters)

for instr in instructions:
if instr in ('F', 'G'):
terry.forward(dist)

elif instr in ('M', 'N'):
terry.penup()
terry.forward(dist)
terry.pendown()

elif instr == '[':
positions.append(terry.pos())
angles.append(terry.heading())

elif instr == ']':
terry.goto(positions.pop())
terry.setheading(angles.pop())

elif instr == '+':
terry.left(angle)

elif instr == '-':
terry.right(angle)

turtle.mainloop()

def right_koch():
run_turtle(('F',), 'F', {'F':'F+F-F-F+F'}, 5, 90, 500, 3)

right_koch()

最佳答案

关闭绘图延迟:

turtle.delay(0)

并隐藏 turtle :

terry.ht()

关闭绘图延迟是个大问题。如果您不这样做,每当 turtle 移动时都会有 10 毫秒的暂停。


如果你想让它运行得更快,而且你只关心完成的图片,你可以完全关闭屏幕更新:

turtle.tracer(0, 0)

并在你的 turtle 执行完所有命令后调用一次update:

terry.update()

通过跟踪和手动 update 调用,程序几乎在我的机器上立即完成。

关于Python 3.x turtle 速度极慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25541944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com