Python Вложенные черепахой квадраты - как исправить дополнительный сдвиг второго квадрата? - PullRequest
1 голос
/ 10 апреля 2020

Я начал изучать Python и играть с Черепахой, рисуя различные формы. Я решил нарисовать n вложенных квадратов и достиг следующего результата:

enter image description here

Однако, как вы можете видеть, после 1-й итерации положение второй квадрат был слишком сильно сдвинут влево / вниз. И все следующие квадраты выглядят хорошо. Я ожидаю, что все квадраты будут иметь одинаковое смещение друг от друга.

Как мне изменить мой код, чтобы исправить это?

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

1 Ответ

2 голосов
/ 10 апреля 2020

Я думаю, что ваша проблема в том, что первый квадрат начинается с (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().

...