乌龟动画中的第一行总是比 python 中的其他行短

First line in a turtle animation is always shorter than the rest in python

无论我做什么,我的乌龟画的第一条线都比其他线短。我尝试了很多代码变体,但找不到有类似问题的人。我为乌龟应该走多远设置了值,但它完全忽略了它第一次移动的值。我是不是遗漏了什么或者这是一个错误?

    import turtle
wn = turtle.Screen()
turtle = turtle.Turtle()

turtle.penup()
turtle.goto(-300, 250)
turtle.pendown()

for i in range (0, 500):

    turtle.forward(200)
    turtle.right(90)
    turtle.forward(200)

wn.exitonclick()

如图所示,第一行(最上面的一行)大约是第二行(最右边的一行)的一半。

删除第二个 turtle.forward(200),您绘制的线条长度为 400。转动 90 后,让下一次迭代绘制直线,使用当前代码,您正在绘制一条 200 线,然后在转动后继续绘制另一条 200

for i in range (0, 500):

    turtle.forward(200)
    turtle.right(90)

你的问题是在你的循环中,你在开始和结束时都向前移动。

所以,第一次向前200px,右转90°,再向前200px。 下一次,它会在它停止的地方开始绘制,所以它又向前移动了 200 像素,使这条线的长度是第一条的两倍。然后右转90°,前进200px,以此类推。

为了解决这个问题,你应该每次向前移动400px并向右转90°循环:

for i in range (0, 500):

    turtle.forward(400)
    turtle.right(90)

这应该可以解决您的问题!