Python Turtle nested squares - 如何修复第二个方块的额外偏移?

Python Turtle nested squares - how to fix the second square extra shift?

我已经开始学习 Python 并开始使用乌龟绘制各种形状。我决定绘制 n 个嵌套的正方形并取得了以下结果:

然而,如您所见,在第一次迭代后,第二个方块的位置向 left/down 方向移动了太多。以下所有方块看起来都不错。我希望所有方块彼此之间的偏移量相同。

我应该如何修改我的代码来解决这个问题?

def draw_squares(side_len, num_squares, side_increment):
    for i in range(num_squares):
        draw_polygon(4, side_len)
        pen.up()
        pen.setposition(x - side_len/2, y - side_len/2)
        pen.down()
        side_len += side_increment


side_length = 50
num_of_squares = 10
side_incr = 40

draw_squares(side_length, num_of_squares, side_incr)
turtle.done()

我认为你的问题是第一个方块是从 (0,0) 开始的。 您可以通过在调用 draw_polygon() 函数之前设置位置来轻松纠正此问题。

def draw_squares(side_len, num_squares, side_increment):
    for i in range(num_squares):
        pen.up()
        pen.setposition(x - side_len/2, y - side_len/2)
        pen.down()
        draw_polygon(4, side_len)
        side_len += side_increment

如果这不能解决问题,请分享您的 draw_polygon() 函数。