我發現python的龜實現速度非常慢。我預計會有一些延遲,但不會等待一個相對簡單的分形(Koch曲線有5次迭代)。Python 3.x龜非常慢?
即使在設置turtle.speed(0)
之後,它仍然很慢。也許有一個錯誤,因爲它不像文檔中聲稱的那樣是即時的?
這個answer建議通過隱藏一個窗口來重新實現海龜。類似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()
你的問題沒有我們需要的信息來告訴你爲什麼你的程序很慢,所以沒有太多的事情可以幫助你。 – user2357112 2014-08-28 06:20:02
@ user2357112我沒有問任何特定的程序,只是蟒蛇的龜一般繪製任何東西。 – qwr 2014-08-28 06:21:10
你期待我們說什麼? 「是的,」烏龜很慢「或」不,「烏龜不慢」?我們無法分辨您可能會或可能不會丟失什麼,因爲我們無法分辨您所做的事情。 – user2357112 2014-08-28 06:22:42