python: Помогите реализовать алгоритм, чтобы найти прямоугольник минимальной площади для заданных точек, чтобы вычислить длину большой и малой оси

У меня есть набор точек (черные точки в значении географических координат), полученных из выпуклой оболочки (синий) многоугольника (красный). см. рисунок:

[(560023.44957588764,6362057.3904932579), 
 (560023.44957588764,6362060.3904932579), 
 (560024.44957588764,6362063.3904932579), 
 (560026.94957588764,6362068.3904932579), 
 (560028.44957588764,6362069.8904932579), 
 (560034.94957588764,6362071.8904932579), 
 (560036.44957588764,6362071.8904932579), 
 (560037.44957588764,6362070.3904932579), 
 (560037.44957588764,6362064.8904932579), 
 (560036.44957588764,6362063.3904932579), 
 (560034.94957588764,6362061.3904932579), 
 (560026.94957588764,6362057.8904932579), 
 (560025.44957588764,6362057.3904932579), 
 (560023.44957588764,6362057.3904932579)]

Мне нужно рассчитать длину большой и малой оси, следуя этим шагам (сформируйте этусообщение написать в R-проект и вДжава) или послеэтот пример процедуры

Вычислить выпуклую оболочку облака.Для каждого края выпуклой оболочки: 2a. вычислить ориентацию края, 2b. поверните выпуклый корпус, используя эту ориентацию, чтобы легко вычислить площадь ограничивающего прямоугольника с минимумом / максимумом x / y повернутого выпуклого корпуса, 2с. Сохраните ориентацию, соответствующую найденной минимальной площади,Вернуть прямоугольник, соответствующий минимальной найденной площади.

После этого мы знаемугол тета (представлена ориентация ограничивающего прямоугольника относительно оси Y изображения). Минимум и максимум и б по всем граничным точкам находятся:

a (xi, yi) = xi * cos Theta + yi sin Thetab (xi, yi) = xi * sin Theta + yi cos Theta

Значения (a_max - a_min) и (b_max - b_min) определяют длину и ширину, соответственно, ограничительного прямоугольника для направления Theta.

Ответы на вопрос(5)

Ваш ответ на вопрос