Python 乌龟绘图已更新 turtle.tracer(0,0)
Python turtle drawing updated for turtle.tracer(0,0)
我是新手,使用 python 3.2.3
当我运行模块在python IDLE时,乌龟在屏幕上画了一个没有任何更新的正方形,所以window出现空白,在我输入任何内容后key, turtle 和 square 由于 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()
触发器替换为鼠标点击 window,但您的方法在这里也同样有效:
from turtle import Turtle, Screen
def drawSquare(turtle):
turtle.goto(100, 0)
turtle.goto(100, 100)
turtle.goto(0, 100)
turtle.goto(0, 0)
screen = Screen()
screen.tracer(0, 0)
screen.onclick(lambda x, y: screen.update())
turtle = Turtle()
drawSquare(turtle)
screen.mainloop()
我也把哪些是乌龟方法,哪些是屏幕方法,说得更清楚了。为了易于使用,turtle 库的初学者友好设计倾向于模糊这些。
我是新手,使用 python 3.2.3
当我运行模块在python IDLE时,乌龟在屏幕上画了一个没有任何更新的正方形,所以window出现空白,在我输入任何内容后key, turtle 和 square 由于 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()
触发器替换为鼠标点击 window,但您的方法在这里也同样有效:
from turtle import Turtle, Screen
def drawSquare(turtle):
turtle.goto(100, 0)
turtle.goto(100, 100)
turtle.goto(0, 100)
turtle.goto(0, 0)
screen = Screen()
screen.tracer(0, 0)
screen.onclick(lambda x, y: screen.update())
turtle = Turtle()
drawSquare(turtle)
screen.mainloop()
我也把哪些是乌龟方法,哪些是屏幕方法,说得更清楚了。为了易于使用,turtle 库的初学者友好设计倾向于模糊这些。