Получите наименьшую ограничивающую рамку для многоугольника, который достаточно большой, несмотря на ориентацию - PullRequest
2 голосов
/ 11 октября 2011

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

Это:

Polygon unrotated

Превращается в это:

Polygon rotated

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

1 Ответ

1 голос
/ 11 октября 2011

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

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

  1. Найдите вершину, наиболее удаленную от центра, и пусть d обозначает ее расстояние от центра.
  2. Многоугольник всегда помещается в поле 2d & times; 2d .
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...