Что такое хороший подход к извлечению прямоугольников с границы? У меня уже есть что-то работающее, но у него есть некоторые ошибки, и некоторые вещи обрабатываются более продвинутыми, чем требуется, поэтому я хочу начать все заново.Вырезать прямоугольники с границы
Вот что я хочу:
Обратите внимание, что на правой стороне границы получить сократим на несколько форм.
У меня есть граница как float[][]
, как в [nOfPoints] [xy]. Так, например:
[0][0] = 10;
[0][1] = 10;
[1][0] = 100;
[1][1] = 10;
[2][0] = 100;
[2][1] = 100;
[3][0] = 10;
[3][1] = 100;
[4][0] = 10;
[4][1] = 10;
бы сформировать прямоугольник. Если какой-либо другой формат более подходит, я могу это изменить. Во всяком случае, меня больше интересует абстрактный подход, который описывается подробно.
помогите пожалуйста.
Ваши прямоугольники всегда выровнены по оси? –
да они !!! – clankill3r
Я собираюсь рассказать об этом в течение дня, но я не уверен, что вы можете сделать намного лучше, чем делать 2d булевых. Я написал это резюме для перекрестков: http://stackoverflow.com/questions/8011267/area-of-rectangle-rectangle-intersection/8011422#8011422. Подход для вычитания будет схожим, но есть усложняющая ситуация, что результатом может быть не один многоугольник, например. если вы вычесть небольшой квадрат из центра большой. –