我刚开始使用海龟绘图,找到了一段关于谢尔宾斯基地毯的代码。代码本应能够画出地毯,但我不知道如何添加显示变量。我只是在网上找到这段代码来帮助我。顺便说一句,这不是作业,只是一个有趣的小项目,让我看到地毯的效果。
import turtle,math
def s(n, l):
if n == 0: # stop conditions
# draw filled rectangle
turtle.color('black')
turtle.begin_fill()
for _ in range (4):
turtle.forward(l)
turtle.left(90)
turtle.end_fill()
else: # recursion
# around center point create 8 smalles rectangles.
# create two rectangles on every side
# so you have to repeat it four times
for _ in range(4):
# first rectangle
s(n-1, l/3)
turtle.forward(l/3)
# second rectangle
s(n-1, l/3)
turtle.forward(l/3)
# go to next corner
turtle.forward(l/3)
turtle.left(90)
# update screen
turtle.update()
# --- main ---
# stop updating screen (to make it faster)
turtle.tracer(0)
# start
s(4, 400)
# event loop
turtle.done()
我收到一个非常奇怪的错误。
Traceback (most recent call last):
File "main.py", line 40, in <module>
turtle.tracer(0)
File "<string>", line 6, in tracer
File "/usr/local/lib/python3.8/turtle.py", line 3662, in Screen
Turtle._screen = _Screen()
File "/usr/local/lib/python3.8/turtle.py", line 3678, in __init__
_Screen._root = self._root = _Root()
File "/usr/local/lib/python3.8/turtle.py", line 434, in __init__
TK.Tk.__init__(self)
File "/usr/local/lib/python3.8/tkinter/__init__.py", line 2261, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
这不是一个重复问题,因为我询问的是如何修复这段代码,而不是错误的原理。
$DISPLAY
shell 变量是 tkinter 与 X-windows 链接以显示图形的方式。某些 tkinter 方面的配置不正确。 - cdlane