【问题标题】:Using Loops to Create Iterations of Graphic Objects使用循环创建图形对象的迭代
【发布时间】:2023-03-17 08:39:01
【问题描述】:

我已经四处寻找答案,但似乎找不到解决方案。我想要函数这个词来创建 10 个相同的圆,其中心点具有相同的 y 坐标但不同的 x 坐标,以便它们的间距从一个中心点到另一个中心点为 25。我创建的函数只绘制对象的一次迭代,我不知道如何解决这个问题。感谢您的任何帮助。

我尝试创建两个单独的函数。一个定义了循环函数,我想在附加一个圆圈列表的同时打印 10 个圆圈。另一个函数调用 draw 函数来绘制所有 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 坐标均匀分布的圆,但我只得到一个圆。

【问题讨论】:

  • 您需要为循环中的每次迭代使用不同的x 值。在循环外初始化它并在其中执行x += increment

标签: python loops zelle-graphics


【解决方案1】:

我们可以用x 替换(未使用的)迭代变量i,并明确描述它应该取的值范围:

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

还有很多其他有效的方法可以解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-08
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2021-10-20
    相关资源
    最近更新 更多