检查新创建的画布图像是否与以前创建的画布图像重叠

2024-05-20 23:38:10 发布

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

我想在plansquare与一个新的plansquare重叠时获得一个输出(它们每毫秒创建一次),但我不确定如何实现。 到目前为止,我检查了新plansquare的坐标,我想让它检查它是否与任何其他plansquare接触,如果是,它将执行canvas.delete(plansquare)

def planwallfunc(event):
    press = True
    print(press)
    x, y = event.x, event.y
    def create_rectangles():
        global x
        global y
        global plansquare
        x, y = event.x, event.y
        plansquare = canvas.create_image(x, y, image=planwall)
        plansquarecoords = canvas.coords(plansquare)
        if canvas.find_overlapping(plansquarecoords):
            canvas.delete(plansquare)
        else:
            plansquare = canvas.create_image(x, y, image=planwall)
    root.after(1, create_rectangles)

我的错误是TypeError: find_overlapping() missing 3 required positional arguments: 'y1', 'x2', and 'y2',这意味着它将plansquarecoords解释为x1。相反,我希望它将其解释为所有4-x1,y1,x2,y2,但我不确定该怎么做

有人知道吗


Tags: imageeventdefcreatefinddeleteglobalcanvas
1条回答
网友
1楼 · 发布于 2024-05-20 23:38:10

该方法需要四个位置参数,但您给它一个带四个值的参数

最简单的解决方案是使用*运算符将四个坐标的列表展开为四个单独的参数:

canvas.find_overlapping(*plansquarecoords)

相关问题 更多 >