繁体   English   中英

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

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

output_theoneiget

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

output_theoneiwant

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

提前致谢。

你有没有试过阅读turtle包的文档? https://docs.python.org/3.7/library/turtle.html

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM