用Python创建循环绘制圆形

2024-04-26 23:47:12 发布

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

在一个简单的任务,任何帮助将不胜感激。它创建了一个图形窗口,根据用户单击的位置,它将绘制一个不同颜色的圆圈。右手=黄色,左手将是红色,这取决于用户单击的位置。但是我不能让我的if语句工作,它返回的全部是10个黄色圆圈。任何帮助都将不胜感激,谢谢

def circles():
win = GraphWin ("circles", 400,100)
for i in range (10):
    point = win.getMouse()
    circleFill = Circle(point, 10)
    circleFill.draw(win)
    if str(point) >= str(200):
        circleFill = Circle (point, 10)
        circleFill.setFill("Yellow")
        circleFill.draw(win)
    else:
        circleFill = Circle (point, 10)
        circleFill.setFill("Red")
        circleFill.draw(win)

Tags: 用户图形if颜色绘制winpointdraw
1条回答
网友
1楼 · 发布于 2024-04-26 23:47:12

你想把一个点和一个数字比较。这没有任何意义。屏幕右上角是否超过200?右下角呢?还是左上角?在

当然,你可以把它们都转换成字符串,然后比较它们,因为你总是可以比较字符串,但是你只会问字典中类似'Point(1600, 0)'是在{}之前还是之后,这并不能告诉你任何有用的东西。在

你的下一次尝试,试图比较一个点和一个点,仍然没有任何意义。(1600, 20)大于还是小于{}?当然,你可以用不同的方式来回答这个问题(例如,你可以把它们当作向量而不是点,并要求它们的规范),但是没有任何一种方法与你的问题相关。在

我想你想做的是比较点的X坐标和一个数:

if point.getX() >= 200:

这很有道理。它覆盖了整个屏幕的右侧部分,无论是从顶部向上还是从底部向下,因为无论您是在(1600, 0)还是{},这个{}部分都比200大。在

这可能不是你想要的,但如果不是,它会给你一个摆脱困境的想法。在

相关问题 更多 >