У меня есть 2D списки вида:Несколько Сравнения для списка 2D
xyPositions = [[474, 318], [543, 432], [633, 328], [548, 514]]
Иногда Есть 4 (как здесь), 8, 10, 12 или 16 пары х координат в этих списках.
Следующие маленькая функция Я написал испытаю координаты ли два набора х перекрытия, е, г., dotOverlap([55, 99], [399, 88])
Однако я несколько смущен, чтобы сказать, что я не могу думать о простом способе проверить все возможные случаи перекрытия (т. е. попарные сравнения):
# #
1 to 2
1 to 3
1 to 4
2 to 3
2 to 4
3 to 4
Как я могу программно сделать это?
from math import sqrt
ClearanceRadius = 7 # pixels
def dotOverlap(p1, p2):
x1 = p1[0]
y1 = p1[1]
x2 = p2[0]
y2 = p2[1]
overLapTest = None
d = sqrt((y2 - y1)**2 + (x2 - x1)**2)
if ClearanceRadius*2 < d:
overLapTest = False
elif ClearanceRadius*2 > d:
overLapTest = True
return(overLapTest)