2013-04-30 2 views
0

Я люблю математику, но я несколько время стучал головой об этом.Заполняющий контейнер с повторяющимися квадратами

Я пытаюсь заполнить не квадратное пространство в холсте HTML5 с квадратами. Я знаю ширину контейнера (W) и высоту (H). И я знаю, сколько квадратов использовать (n)

Но размер квадрата - это то, что пытались выяснить. И как это сделать. Квадраты должны быть достаточно большими, чтобы покрыть все пространство, но это не должно быть sqrt (n)/sqrt (n). Он должен заполнить как можно больше места.

Любые идеи о том, где искать решение этого вопроса?

Спасибо!

ответ

1

Ваш сценарий часто неразрешимый.

Например, рассмотрите область 2 x 3. Вы не можете вместить 5 или 7 квадратов в эту область.

2

Первая оценка будет делить площадь W*H на количество квадратов n. Это даст вам площадь для каждого квадрата, а квадратный корень из этой области даст вам длину.

Но это работает только в тех случаях, когда прямоугольник может быть точно заполнен этими квадратами. Если вам может потребоваться некоторое перекрытие за пределами прямоугольника, вам, возможно, придется отрегулировать длину или число квадратов. Предположим, вы хотите, чтобы ваш прямоугольник (т. Е. Заполнил немного более крупный прямоугольник) размером с квадратами не более n, выбирая квадраты как можно меньше при этих обстоятельствах. Выполните вышеуказанное вычисление. Предположим, что вам понадобится 3.75 строк и 6,23 столбца квадратов. Тогда вы знаете, что для большего количества строк или столбцов потребуется больше, чем n квадратов. Таким образом, вам придется принимать 3 строки и 6 столбцов. Вы можете вычислить квадратные длины H/3 и W/6 и взять больше из них.