gpt4 book ai didi

python - 隐藏 turtle 窗口?

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:03 26 4
gpt4 key购买 nike

我在 Turtle 中生成图表,作为我程序的一部分,我从我的图表中识别出某些坐标。我希望能够隐藏完整的 turtle 窗口,因为我只关心坐标,这可能吗?

编辑:

问题 2:

这不是真正的答案,而是其他一些问题。

我的程序在某种程度上可以正常工作,如果您在 IDLE 中运行它并输入“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)

问题是 Turtle 太慢了!有没有像 Turtle 一样但可以更快地执行命令的软件包?

最佳答案

我按照 thiryseven 的建议重新实现了 turtle 类。它与api一致。 (即,当您在此类中右转时,它与 turtle 中的右转相同。

这并没有实现 api 中的所有方法,只实现了常用的方法。 (以及您使用的那些)。

但是,它很短而且扩展起来相当简单。此外,它还会跟踪它去过的所有点。它通过在每次调用 forward、backward 或 setpos(或这些函数的任何别名)时向 pointsVisited 添加一个条目来实现这一点。

import math

class UndrawnTurtle():
def __init__(self):
self.x, self.y, self.angle = 0.0, 0.0, 0.0
self.pointsVisited = []
self._visit()

def position(self):
return self.x, self.y

def xcor(self):
return self.x

def ycor(self):
return self.y

def forward(self, distance):
angle_radians = math.radians(self.angle)

self.x += math.cos(angle_radians) * distance
self.y += math.sin(angle_radians) * distance

self._visit()

def backward(self, distance):
self.forward(-distance)

def right(self, angle):
self.angle -= angle

def left(self, angle):
self.angle += angle

def setpos(self, x, y = None):
"""Can be passed either a tuple or two numbers."""
if y == None:
self.x = x[0]
self.y = y[1]
else:
self.x = x
self.y = y
self._visit()

def _visit(self):
"""Add point to the list of points gone to by the turtle."""
self.pointsVisited.append(self.position())

# Now for some aliases. Everything that's implemented in this class
# should be aliased the same way as the actual api.
fd = forward
bk = backward
back = backward
rt = right
lt = left
setposition = setpos
goto = setpos
pos = position

ut = UndrawnTurtle()

关于python - 隐藏 turtle 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7236879/

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