我在Turtle中生成图表,作为程序的一部分,我从图表中识别出某些坐标。我希望能够隐藏完整的乌龟窗口,因为我只关心坐标,有可能吗?在
编辑:
问题2:
这不是一个真正的答案,而是一些其他的问题。在
我的程序在某种程度上起作用了,如果你在空闲状态下运行并输入“l”,它会给你一个带有坐标的列表。在
import Tkinter
import turtle
from turtle import rt, lt, fd # Right, Left, Forward
size = 10
root = Tkinter.Tk()
root.withdraw()
c = Tkinter.Canvas(master = root)
t = turtle.RawTurtle(c)
t.speed("Fastest")
# List entire coordinates
l = []
def findAndStoreCoords():
x = t.xcor()
y = t.ycor()
x = round(x, 0) # Round x to the nearest integer
y = round(y, 0) # Round y to the nearest integer
# Integrate coordinates into sub-list
l.append([x, y])
def hilbert(level, angle):
if level == 0:
return
t.rt(angle)
hilbert(level - 1, -angle)
t.fd(size)
findAndStoreCoords()
t.lt(angle)
hilbert(level - 1, angle)
t.fd(size)
findAndStoreCoords()
hilbert(level - 1, angle)
t.lt(angle)
t.fd(size)
findAndStoreCoords()
hilbert(level - 1, -angle)
t.rt(angle)
问题是乌龟太慢了!有没有一个程序包像海龟一样,但可以更快地执行命令?在
我按照37岁的建议重新实施了海龟课程。与api一致。(也就是说,在这个类中右转时,与在
turtle
中右转相同。在这并不是实现api中的所有方法,只实现了常见的方法。(以及你用过的那些)。
然而,它很短,而且很容易扩展。此外,它还可以记录所有到达的点。它通过在每次调用forward、backward或setpos(或这些函数的任何别名)时添加一个条目来实现这一点。在
是的,这是可能的。最简单的方法是实例化一个根Tkinter窗口,将其取出,然后将其用作RawTurtle画布实例的主窗口。在
示例:
不幸的是,这仍然会启动图形系统,但不会出现窗口。在
是的,乌龟可以。如果我们在tkinter实现中添加一个}方法:
TurtleScreen
,并使用它的tracer()
功能,那么我们可以比turtle的speed()
方法更快。我们可以通过放弃定制来大大简化代码,只需使用turtle自己的begin_poly()
、end_poly()
和{在我的系统中,这将在大约1/3秒的时间内打印出5级Hilbert曲线中的所有点。您发布的代码需要将近9秒才能输出一个级别4。在
相关问题 更多 >
编程相关推荐