Изобретаю алгоритм генерации мира из многоугольников, подумалось, а может это велосипед и уже есть такие?
Задача такая. Есть плоскость, есть начало координат, всё измеряется в неких условных единицах. Для простоты плоскость можно представить экраном монитора, точка отчёта вверху слева.
Необходимо случайным образом разместить на этой плоскости заданное количество выпуклых многоугольников, соприкасающихся рёбрами друг с другом. И получить списки координат их вершин. Соприкасающиеся рёбра имеют одинаковые координаты вершин для двух (или нескольких) многоугольников.
Критерии задаваемы: размер плоскости, количество многоугольников, площадь одного многоугольника (одинаковая или диапазон [А..Б]), количество рёбер (динаковое, диапазон), количество соприкосновений с другими многоугольниками и с окружающей бесконечностью, др.
Пример.
Ещё пример можно увидеть на флешках, отображающих результаты голосований по регионам России при выборах, например, Президента. Есть на сайте избиркома.
Можно, конечно, разбить плоскость на клетки единичного размера, сгенерировать клеточные области, потом преобразовать их во многоугольники, но хотелось бы обойтись без этих промежуточных вычислений.
Также понятно, что на задачу можно посмотреть не как на сборку пятнашек, а как на разборку-разбиение. Т.е. генерируем описывающий многоугольник по внешним границам, а потом начинаем разбивать на составляющие...
Но может кто встречал в Сети подобные алгоритмы? Или подходы к решению таких задач...
... << RSDN@Home 1.1.4 beta 3 rev. 189 Тишь да гладь, да Божья благодать >>