关于 Turtle 中的循环

About Loops in Turtle

我想问一个关于我试图在我的程序中使用的某种循环的问题。因此,为此我将分享我程序中存在的绘制三角形的函数代码;

def drawing_triangle():

    turtle.forward(50)
    turtle.left(120)
    turtle.forward(50)
    turtle.left(120)
    turtle.forward(50)
    turtle.left(120)
    turtle.penup()
    turtle.forward(50)
    turtle.forward(10)
    turtle.pendown()

所以这是绘制三角形的函数,当我尝试 运行 程序时,它会给我如下所示的输出;

正如您在图片中看到的,它并排打印三角形,但我希望它们在每四个三角形处开始一个新行,如下图所示;

总之,我的问题是如何获得第二张图片中的输出?

提前致谢。

您是否尝试过阅读 turtle 软件包的文档? https://docs.python.org/3.7/library/turtle.html

我认为您遇到的困难来自乌龟的所有运动都相对于其 当前 位置。但是为了制作一个新的"triangle line",你想要"reset"乌龟的位置一直回到左边。

看看命令 turtle.setposition(x, y) -- 它以绝对方式设置乌龟的位置。它不是相对于当前位置移动,而是 "jumps" 到 (x, y)

在绘制了一系列要向左重置的三角形后,您可以将该命令放在 for 循环的一部分中。您必须管理您的 for 循环以迭代设置高度,以便每个后续行都位于最后一行的下方,但这是唯一真正的困难。

或者,您可以计算到目前为止在给定 "triangle line" 中绘制了多少个三角形,然后根据 width/spacing 向左移动以及绘制了多少个三角形来相对向后重新定位绘制到此为止。但我认为绝对定位可能是更简单的方法,也是一种很好的习惯方法。