我是一个使用python 3.2.3的新手
当我在python IDLE中运行模块时,turtle在屏幕上画了一个没有任何更新的正方形,因此窗口显示为空白,在我输入任何键后,turtle和正方形都是由于turtle.update()的调用而出现的。
但是,当我双击在文档中存储下面代码的.py文件并直接执行它时,在我输入任何键之前都会出现正方形。
有趣的是,海龟没有出现,只有广场出现。
即使我已经将turtle tracer设置为(0,0),似乎只有在绘制后的正方形才有一个turtle更新。
这被认为是个错误吗?我该如何解决?谢谢你的帮助。
import turtle
def drawSquare():
turtle.down();
turtle.begin_fill();
turtle.goto(10, 0);
turtle.goto(10, 10);
turtle.goto(0, 10);
turtle.goto(0, 0);
turtle.end_fill();
turtle.up();
def tUpdate():
turtle.update();
turtle.tracer(0,0);
drawSquare();
input("Not updated. Press any key.");
tUpdate();
print("Updated");
turtle.mainloop();
有两件事对您不利:为
tracer()
提供的糟糕文档,以及end_fill()
和up()
导致更新发生的事实。tracer()
并不是真的要向用户隐藏东西,直到您准备好显示它们——这是一个速度优化,这样用户就不必看到复杂图像中的每个绘图步骤。您无法完全控制何时进行更新。下面是一个例子的重做,它显示了你想要的行为,代价是它不再是一个填充的正方形。我已经将您的
input()
触发器替换为鼠标单击窗口,但是您的方法在这里也同样有效:我还做了哪些是海龟法,哪些是屏风法,比较明确。turtle库最初的程序员友好设计倾向于为了便于使用而模糊它们。
相关问题 更多 >
编程相关推荐