使用绘制分形时
turtle
,您应注意以下几点:
-
函数必须开始的位置(在您的情况下,指定“左下角”)。
-
在哪里停止(?)-位置和方向!这一点在您的代码中并不清楚,这就是为什么它不工作的原因。
代码中有两个问题:
-
你应该走了
backward(length // 2)
正确地开始绘制左正方形(正如您在注释中所做的那样)
-
你应该回到你开始广场的地方(大广场的左下角)
下面是带有一些注释的代码:
def square(length, level):
# Start from the bottom-left corner
if level == 0:
return
else:
# Draw the bottom side
forward(length)
# Draw the right square
square(length // 2, level - 1)
# Assume we ended at the same position
# Draw the right side
lt(90); forward(length)
# Draw the upper side
lt(90); forward(length)
# Draw the left side
lt(90); forward(length)
# Go backward
lt(90); backward(length // 2) ;
# Draw the left square
square(length // 2, level - 1)
# Go back to the original position
forward(length // 2)
基本上,你错过了最后一次
forward(length // 2)
这将移动
乌龟
返回其原始位置。