Python图形模块

2024-10-03 23:18:15 发布

您现在位置:Python中文网/ 问答频道 /正文

Hi-im正在尝试使用johnzelles简单图形模块导入创建一个大小为100x100像素的python图形窗口。在

下面是我需要在图形窗口中重新创建的项目,我只是在寻找如何开始这方面的提示,因为我不知道从哪里开始(我可以单独绘制每个东西,但我需要使用一个循环)我已经尝试过,但我已经完全卡住,我知道圆圈需要有一个半径5

enter image description here

谢谢

更新: 所以在@Alecg_O的帮助下,我已经解决了这个问题,但是我不知道如何复制红色圆圈无数次,显然我可以复制并粘贴代码并更改x&y坐标,但必须有一种更有效的方法?到目前为止我的代码

def circlePattern(): win = GraphWin("Graphics", 100, 100) x = -15 y = 20 for i in range(3): x = x + 35 for dx in range(-10,11,10): for dy in range(-10,11,10): drawCircle(win, Point(x+dx, y+dy), 5, "red") y = 20 for i in range(2): y = y + 35 for dx in range(-10,11,10): for dy in range(-10,11,10): drawCircle(win, Point(x+dx, y+dy), 5, "red") for x in range(10,86,35): for y in range(10,86,35): drawCircle(win, Point(x+dx, y+dy), 5, "white")


Tags: 代码in图形forrangeredhiwin
1条回答
网友
1楼 · 发布于 2024-10-03 23:18:15

为了最大限度地利用循环,您需要使用一系列嵌套循环:

从窗口左侧到每组中心(白色圆圈的中心)的距离为10+5=15像素,因此要使圆均匀分布,x和y坐标应为:

(15,15), (50,15), (85,15)
(15,50), (50,50), (85,50)
(15,85), (50,85), (85,85)

这样可以让您循环通过每个白色圆圈的中心点:

^{pr2}$

下一步你需要循环通过使每个圆成为一个集合的点。例如,对于第一组:

(5,5),  (15,5),  (25,5)
(5,15), (15,15), (25,15)
(5,25), (15,25), (25,25)

但是我们想让它成为一般的,我们需要用x和y来定义它们:

(x-10, y-10), (x, y-10), (x+10, y-10)
(x-10, y),    (x,y),     (x+10, y)
(x-10, y+10), (x, Y+10), (x+10, y+10)

要使这些以循环形式出现,这样的方法应该足够了:

for dx in range(-10,11,10):
    for dy in range(-10,11,10):

最后你准备好做你的圆了,因为循环贯穿所有需要的点,你只需要定义一个圆!这将在点(x+dx,y+dy)处。在

你可能已经注意到,现在这只会把所有的圆圈都画成红色。我把它留给你一个小小的挑战,让中间的语句变白:)提示:不要担心if语句,只需在绘制的语句上方画一个白色圆圈。如果将圆放置在循环中的正确位置,则只需再定义一个圆。在

相关问题 更多 >