2016-07-29 1 views
0

У меня есть проблема, в которой цель состоит в том, чтобы вычислить площадь ориентированного по оси минимального ограничивающего который формируется из множества точек круга.Как рассчитать площадь выровненного по оси минимального ограничивающего прямоугольника, сформированного из множества точек, которые принадлежат хотя бы одному из заданных кругов.

I.e.

Array x = [x1, x2, x3] 
Array y = [y1, y2, y3] 
Array r = [r1, r2, r3] 

х - х координат, у - у скоординированы и радиус

Любой намек, о том, как подойти?

ответ

0

Поскольку ограничивающая рамка выровнена с осями, вам нужно только заботиться о самой левой, самой правой, самой высокой и самой низкой точке в каждом круге. Самая левая точка круга, центрированная на (x1, y1) с радиусом r1, является точкой (x1-r1, y1). Поэтому х-координата вашей левой точки ограничительной рамки есть в коде Python, в

xmin = min(x[k]-r[k] for k in range(len(x))) 

И аналогично для Xmax, Ymin и Ymax.

Если вы не хотите выражений генератора Python, вы используете другой язык без них, или массивы слишком велики, чтобы циклически перебирать их четыре раза, просто проведите один раз над индексами массива и найдите минимум x [k] -r [k], x [k] + r [k] и т. д.

Смежные вопросы