Mat*_*ert 2 python tuples canvas tkinter closest
我有这个代码,如果他附近有其他东西,他会创建一个矩形说:
def creaRect(event):
#rect = Rectangle.Rectangle(canvas, event, CanWidth=Width, CanHeight=Height)
width, height = 25, 25
x, y = event.x, event.y
x1 = int(x-width/2)
y1 = int(y-height/2)
x2 = int(x+width/2)
y2 = int(y+height/2)
rect = canvas.create_rectangle((x1, y1, x2, y2), outline="red", width=1, tags="bloc")
Rectangle.OidRect.append(rect)
near = canvas.find_closest(x, y, 200)
print(len(near))
Run Code Online (Sandbox Code Playgroud)
但是find_closest返回的元组的长度是每次1,而我在同一个位置创建许多矩形或者非常接近.对我来说,find_closest应该返回一个元组,其中包含x,y坐标周围所有项目的id,范围为200.这是我不理解或做错的事情吗?
从这里的文档find_closest()
find_closest(self,x,y,halo = None,start = None)
返回最接近X,Y像素的项目.如果多次匹配最高.比HALO更近的所有项目都被认为是重叠的(所有项目都是最近的).如果指定了START,则会在此标记下方进行下一步.
所以find_closest()只会给你最近的项目.如果你想在一个点的距离内找到多个项目(这听起来像你想要的那样),试试:
find_overlapping(x1,y1,x2,y2)
查找与给定矩形重叠的所有项目,或者完全由其包围的项目.
x1 - 左边缘.
y1 - 上缘.
x2 - 右边缘.
y2 - 下边缘.
返回:
包含所有匹配项的元组.
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |