乌龟动画中的第一行总是比 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)
这应该可以解决您的问题!
无论我做什么,我的乌龟画的第一条线都比其他线短。我尝试了很多代码变体,但找不到有类似问题的人。我为乌龟应该走多远设置了值,但它完全忽略了它第一次移动的值。我是不是遗漏了什么或者这是一个错误?
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)
这应该可以解决您的问题!