Случайная упаковка шаров
Краткое описание
Рассматривается задача плотной упаковки шаров заданного радиуса в квадрате и круге. Так же в ходе исследования выявляется наиболее плотная 2D упаковка из рассматриваемых.
Программа генерирует последовательно круги разного радиуса в заданной области(квадрат или круг) до тех пор, пока
раз подряд не получим неудачный эксперимент, т.е. наш круг будет выходить за заданную область или задевать другие круги.
Для работы программы
Для запуска программы выберите, какой эксперимент хотите провести - случайная упаковка в квадрате ( кнопка "square") или в круге (кнопка "circle") и нажмите "Start".
Так же мы можем варьировать отношение диаметра маленького кружка
к стороне квадрата/диаметру большого круга и количество экспериментов - и кол-во "неудачных" экспериментов , если будем двигать ползунок или задавать значение в специально отведённом окошке."min плотность" показывает наименьшее значение плотной упаковки для данного количества экспериментов и данного заданного числа "неудачных" экспериментов, "avg плотность" - наиболее вероятная упаковка, а "max плотность" - наиболее плотная упаковка.
В верхнем окне рисуется сама упаковка кругов в квадрат или круг, а ниже чертится график зависимости удельного числа проводимых экспериментов(т.е. отношение кол-ва экспериментов с данной плотностью к общему числу экспериментов) от плотности упаковки, которая равна отношению суммарной площади маленьких кругов к площади квадрата/круга.
Скачать Tight packing.rar.
Текст программы на языке Dart (разработчик Бондарев Сергей):