关于海龟循环

时间:2019-12-11 18:14:39

标签: python python-3.x turtle-graphics

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

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()

所以这是绘制三角形的功能,当我尝试运行该程序时,它会为我提供如下输出;

output_theoneiget

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

output_theoneiwant

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

谢谢。

1 个答案:

答案 0 :(得分:1)

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

我认为您遇到的困难来自所有乌龟相对于其当前位置的运动。但是,要制作一条新的“三角形线”,您需要将“乌龟”的位置一直“重置”到最左侧。

看看命令turtle.setposition(x, y) -这以绝对的方式设置了乌龟的位置。而不是相对于当前位置移动,它只是“跳转”到(x, y)

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

或者,您可以计算在给定的“三角形线”中到目前为止已绘制了多少个三角形,然后根据宽度/间距向左移动来相对地向后重新定位,并且到目前为止已绘制了多少个三角形。但我认为绝对定位可能是更容易习惯的方法,也是一种习惯的好方法。