Вопрос, который вы задаете, очень сложный. Чтобы представить это в перспективе, (гораздо) более простой случай, когда вы упаковываете внутреннюю часть вашего ограниченного многоугольника неперекрывающимися дисками, уже труден, а диски - это самая простая возможная «форма упаковки» (с любой другой формой, которую вам нужно учитывать ориентацию, а также размер и расположение в центре).
На самом деле, я думаю, что в вычислительной геометрии существует открытая проблема определить для произвольного целого числа N и произвольной ограниченной многоугольной области (в евклидовой плоскости), что является «оптимальным» (в смысле охватывают наибольший процент внутренней части многоугольника) упаковку из N вписанных неперекрывающихся дисков, где вы можете выбрать радиус и центральное положение каждого диска. Я уверен, что «лучший» ответ - это , известный определенными особыми многоугольными формами (такими как прямоугольники, круги и треугольники), но для произвольных форм ваш лучший «эвристик», вероятно, такой:
- Начните счетчик фигур с N.
- Добавьте самую большую «форму упаковки», которую вы можете полностью разместить внутри многоугольной границы, не перекрывая другие формы упаковки.
- Уменьшить счетчик фигур.
- Если ваш счетчик фигур> 0, перейдите к шагу 2.
Я говорю «вероятно», потому что «сначала наибольший» не всегда лучший способ упаковать вещи в замкнутое пространство. Вы можете погрузиться в этот специфический вкус сумасшествия, читая о проблеме упаковки бункера и проблемы с рюкзаком .
РЕДАКТИРОВАТЬ: Шаг 2 сам по себе трудный. Разумной стратегией было бы выбрать произвольную точку на внутренней стороне многоугольника в качестве центра и «раздувать» диск до тех пор, пока он не коснется границы или другого диска (или обоих), а затем «сдвинуть» диск, продолжая раздувать это так, что он остается внутри границы, не перекрывая любые другие диски, пока не будет «захвачен» - по крайней мере, с 2 точками контакта с границей и / или другими дисками. Но не легко формализовать этот «скользящий процесс». И даже если вы правильно понизите процесс скольжения, эта стратегия не гарантирует, что вы найдете самый большой «вписываемый диск» - ваш «локально максимальный» диск может быть захвачен «куском» внутреннего пространства, которое связано сузьте "шею" свободного пространства до более крупной "лопасти", где поместится больший диск.