@arkhipzharov
Web-разработчик

Заполнить экран клетками без циклов, сохраняя форму прямоугольника?

Была задача заполнить экран клетками, и при этом получившийся прямоугольник должен был полностью вмещаться в него, сохраняя свою форму, как здесь:

5ea29a280b316822086216.jpeg
И при этом избегать ситуаций, когда в последнем ряду меньшее количество клеток:

5ea29a613c6fe050998147.jpeg
Написал для этого дела код, но иногда клетки всё равно переносятся (думаю потому что при ресайзе ширина экрана может не делиться на 10, а ища подходящий размер клетки мы его уменьшаем на 0.01). Возможно ли сделать с помощью математики так, чтобы соблюдались вышеперечисленные условия, и при этом в коде не использовались циклы для подбора подходящего размера клетки, а также можно ли найти его при любом разрешении экрана? Правильно ли я вообще подошёл к решению проблемы?
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Разложить число ячеек на множители 1000 = 2 * 2 * 2 * 5 * 5 * 5

1000 ячеек можно представить как ограниченное число прямоугольников:
2 * 500
4 * 250
5 * 200
8 * 125
10 * 100
20 * 50
25 * 40
и зеркальные.

При ресайзе выбирать из них ближайший к пропорции экрана. И подгонять размер самих ячеек, если это допустимо.

Примерно так:

Вам остаётся доработать, чтобы работало и при пропорциях экрана когда высота больше ширины.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 07:58
500 руб./в час
18 апр. 2024, в 07:22
45000 руб./за проект
18 апр. 2024, в 01:12
150000 руб./за проект