Получите наименьшую ограничивающую рамку для многоугольника, который достаточно велик, несмотря на ориентацию

В настоящее время я получаю ограничивающую рамку для своего многоугольника, получая min / max x и min / max y точек, но при повороте многоугольника ограничивающая рамка слишком мала, чтобы соответствовать повернутому многоугольнику. См. Иллюстрацию для пояснения:

Этот:

Многоугольник без вращения

Оборачивается в это:

Многоугольник повернут

Как мне получить ограничивающую рамку, достаточно большую, чтобы содержать любое повернутое состояние?


person Erik Rothoff    schedule 11.10.2011    source источник


Ответы (1)


Если я правильно понимаю проблему, это действительно тривиально.

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

  1. Найдите вершину, наиболее удаленную от центра, и пусть d обозначает ее расстояние от центра.
  2. Многоугольник всегда помещается в рамку 2d 2d.
person aioobe    schedule 11.10.2011