У меня есть функция, которая печатает список прямоугольников как этотКак найти Rect, ближайший к данному Rect из их списка?
[<rect(394, 28, 80, 100)>, <rect(394, 126, 80, 100)>, <rect(394, 224, 80, 100)>, <rect(472, 28, 80, 100)>, <rect(472, 126, 80, 100)>]
и я ищу способ, чтобы соответствовать ближайший Rect из списка выше любого данного Rect.
Например, данный Rect, такой как <rect(377, 231, 50, 70)>
, будет соответствовать <rect(394, 224, 80, 100)>
и распечатать его.
Я пытался сделать это с кортежем и список кортежей с помощью мин функции как этот
temp_list = [(1, 3), (4, 9), (5, 7), (3, 5), (9, 4), (8, 4), (6, 1)]
temp_tuple = (5, 11)
nearest = min(temp_list, key=lambda c: (c[0] - temp_tuple[0]) ** 2 + (c[1] - temp_tuple[1]) ** 2)
print(nearest)
, но я не знаю, как бы я заставить его работать на тип данных Rect.
Вы имеете правильное представление о том, что делать в Python, ваша проблема в том, что это не очень хорошо определенно, что расстояние между двумя прямоугольниками является. Должно быть расстояние между центрами? Среднее расстояние между углами? Среднее расстояние между сторонами? –