@trauus

Как сгенерировать красивую раскладку плитки?

Задача just for fun: имеем сотню плиток одинакового размера, но с разным декором, всего 14 видов. Какого-то декора больше, какого-то совсем мало. Нужно написать программу, которая для области M x N плиток сделает равномерную раскладку.

Первым делом я попробовал решать в лоб - по порядку обошел ячейки и заполнил случайным декором. Получилось плохо, много повторяющихся декоров рядом:
5ac0ff6a111a8610378790.png

Как сделать, чтобы декоры не повторялись и были более-менее распределены?
  • Вопрос задан
  • 149 просмотров
Пригласить эксперта
Ответы на вопрос 2
longclaps
@longclaps
just for fun:
  1. придумываешь "потенциальную энергию" для выкладки:
    • одинаковые плитки отталкиваются обратно пропорционально квадрату расстояния между ними
    • разные плитки друг друга игнорируют
    • но если 2 любые плитки попали в одну ячейку - очень сильно отталкиваются, ну прям 100500 ньютон
  2. находишь минимум энергии (например, методом отжига)
  3. чтобы не париться с границами области, считаешь её поверхностью бублика
Ответ написан
Комментировать
Хмм. Сначала решил, что мне нечего ответить на этот вопрос но потом появилась идея. Попробуйте вручную для каждой плитки задать те, которые вплотную к ней смотрятся хорошо. И использую это стройте рисунок просто рандомом. Результаты должным сразу хорошими, без других ухищрений.

P. S. Если попробуете — покажите, что получилось
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы