过去几天我一直在努力解决这个问题。它确实有效,但不是我想要的方式。问题是它从左上角(图1)开始螺旋,而不是从右下角(图2),这正是我想要的。我是一名初学者,我不知道turtle的许多方法或函数,因此请用您的代码回答我的问题,以便更好地理解:
import turtle
tur=turtle.Turtle()
tur.penup()
tur.setpos(-250,250)
dot_distance=15
def spiral(r,c):
#r=row,#c=col
ri=0;ci=0
#ri=row_index,ci=col_index
while(ri<r and ci<c):
for i in range(c-1,ci-1,-1):
tur.dot()
tur.forward(dot_distance)
r-=1
tur.right(90)
for i in range(r-1,ri-1,-1):
tur.dot()
tur.forward(dot_distance)
ci+=1
tur.right(90)
for i in range(ci,c):
tur.dot()
tur.forward(dot_distance)
ri+=1
tur.right(90)
for i in range(ri,r):
tur.dot()
tur.forward(dot_distance)
c-=1
tur.right(90)
spiral(20,20)
实际输出是第一张图片,但我希望它像第二张图片一样,从右下角而不是左上角开始螺旋:
仅仅确定起始方向是不够的,我们还需要确定起始位置。在我们进行这项工作时,请完善您的代码:
您只是在}
tur.setpos()
之后缺少了^{从文档中:
将海龟的方向设置为_角度:以度为单位的一些常见角度
此代码将使一只乌龟在屏幕上盘旋,留下一个点迹,生成的图像将完全位于屏幕中央:
输出:
您可以看到,在绘制每一行之后,我将变量(
r
或c
)减1,所以这个while循环:
while r+1 and c:
告诉python,尽管每个变量仍然有点剩余,但是,继续绘制行
相关问题 更多 >
编程相关推荐