Я довольно долго пытался с этой, казалось бы, простой проблемой. Мне задан набор точек (которые я еще упростил до выпуклой оболочки), и моя задача - найти прямоугольник (не обязательно ориентированный по оси), который охватывает все из них, не имеет дополнительного пространства (так что это плотно облегающие точки) и имеет максимально возможный периметр. Для меня не было проблем найти минимальный, но это оказалось более жестким орешком, чтобы взломать. При поиске минимального ограничивающего прямоугольника я мог использовать предположение, что одна из сторон прямоугольника всегда выровнена с одной из сторон корпуса, но здесь я не вижу такого случая здесь. Я пропустил что-то больно очевидное? Единственный способ, который я мог придумать до сих пор, - проверить антиподальные пары точек, если они могут проецироваться на стороны прямоугольника и использовать некоторый триггер, чтобы максимизировать функцию, но я просто потерял себя в расчетах.Ограничивающий прямоугольник с максимальным периметром для набора точек
Заранее благодарен!
Вы можете написать ссылку на используемый вами алгоритм? Я подозреваю, что это может быть так же просто, как вращение минимального ограничивающего прямоугольника на 45 градусов и его расширение, чтобы оно соответствовало точкам –
(min (x), max (y)), (max (x), min (y)) – BLUEPIXY