gpt4 book ai didi

为 turtle.tracer(0,0) 更新了 Python turtle 绘图

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:17 27 4
gpt4 key购买 nike

我是使用 python 3.2.3 的新手

当我在python IDLE中运行该模块时, turtle 在屏幕上没有任何更新地绘制了一个正方形,因此窗口显示为空白,并且在我输入任意键后,由于 turtle 的调用出现了 turtle 和正方形.更新()。

但是,当我双击文档中存储以下代码的.py文件并直接执行时,在我输入任何键之前,方 block 总是出现。

有趣的是没有显示 turtle ,只显示了正方形。

即使我已经将 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() 触发器替换为鼠标点击窗口,但您的方法在这里也同样有效:

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 方法,哪些是屏幕方法。为了便于使用,turtle 库的初学者友好设计倾向于模糊这些。

关于为 turtle.tracer(0,0) 更新了 Python turtle 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970174/

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