Ограничительная рамка списка всех кружков - PullRequest
0 голосов
/ 25 марта 2020

У меня есть список окружностей с указанием местоположения и радиуса для каждого круга, например, [(x, y, r), ...].

Мне нужно найти ограничивающий прямоугольник для всего списка, чтобы в нем содержались все круги. Я попытался обойти все круги и найти минимальное и максимальное значения x и y, но это не учитывает радиус каждого круга.

xlist = []
ylist = []
for circle in circle_list:
    xlist.append(circle[0])
    ylist.append(circle[1])

# top-left and bottom-right corners
bbox = [(min(xlist), min(ylist)), (max(xlist), max(ylist))]

1 Ответ

2 голосов
/ 25 марта 2020

Вы должны учитывать радиус при создании xlist и ylist. Это как:

xlist = []
ylist = []
for circle in circle_list:
    x,y,r = circle[0], circle[1], circle[2]
    xlist.append(x-r)
    xlist.append(x+r)
    ylist.append(y-r)
    ylist.append(y+r)
...