У меня есть элемент DIV, размер которого может быть изменен пользователем. В этом DIV я хочу нарисовать заданное количество квадратов. Теперь мне нужно выяснить, какой должна быть идеальная длина стороны квадрата, чтобы все поместилось в DIV без переполнения.
Это то, что я получил до сих пор:
function CalcSize (){
var number = 23; // Example-Number
var area = jQuery('#container').height() * jQuery('#container').width();
var elementArea = parseInt(area / number);
var sideLength = parseInt(Math.sqrt(elementArea));
return sideLength;
}
Это делает квадраты слишком большими, поскольку не «выбрасывает» пространство, которое не может быть заполнено квадратами. При поиске этой проблемы я нашел проблему с упаковкой и отображение дерева, но ни то, ни другое не помогло мне с моим проблема, так как, честно говоря, мне не хватает математических навыков, и, насколько я понимаю, решения допускают такие вещи, как неквадраты и повороты.
Спасибо!
Обновление:
В настоящее время я использую очень грубый метод изменения размера квадратов, постоянно изменяя их размер и проверяя, не переполняются ли они. Этот метод дает мне правильный результат, но довольно плохо влияет на производительность. Я уверен, что этого можно добиться расчетным путем.