Использование циклов для создания итераций графических объектов - PullRequest
0 голосов
/ 22 октября 2019

Я искал ответ на этот вопрос, но не могу найти решение. Мне бы хотелось, чтобы функция word создавала 10 одинаковых окружностей с центральными точками, которые имеют одинаковые координаты y, но разные координаты x, чтобы их расстояние составляло 25 от одной центральной точки к другой. Созданные мной функции рисуют только одну итерацию объекта, и я не могу понять, как это исправить. Спасибо за любую помощь.

Я попытался создать две отдельные функции. Один определяет функцию цикла, которую я хотел бы напечатать 10 кружков при добавлении списка кругов. Другая функция вызывает функцию рисования для рисования всех 13 кругов.

def draw(window):
    circles=[]
    for i in range(10):
        x=25
        circle=Circle(Point(0+x,370),10)
        circle.setFill("yellow")
        circles.append(circle)
        circle.draw(window)
    return circles
def circleRow():
    window=GraphWin("Window",400,400)
    window.setBackground("red")
    cicles1=draw(window)

circleRow()

Я ожидал, что на выходе получится 10 кругов, равномерно распределенных по одной и той же координате y, но я получаю только один круг.

1 Ответ

0 голосов
/ 24 октября 2019

Вместо этого мы могли бы заменить (неиспользованную) итерационную переменную i на x и явно описать, какой диапазон значений он должен принимать:

from graphics import *

def draw(window):
    circles = []

    for x in range(25, 275, 25):
        circle = Circle(Point(x, 370), 10)
        circle.setFill('yellow')
        circle.draw(window)

        circles.append(circle)

    return circles

def circleRow():
    window = GraphWin("Window", 400, 400)
    window.setBackground('red')

    circles = draw(window)

    window.getMouse()
    window.close()

circleRow()

Существуют различные другие допустимые способы решения этой проблемы. .

...