Я построил 2D-сетку в Java, где каждая ячейка может иметь определенный атрибут, скажем, цвет. На каждой итерации основного цикла этот цвет может меняться.
Что я хочу сделать:
- при увеличении отобразится небольшое подмножество сеток и фактический цвет каждой сетки.
- когда вы уменьшаете масштаб и видите больше ячеек одновременно, ячейки начинают становиться слишком маленькими, чтобы их можно было видеть по отдельности, поэтому я хочу иметь возможность просто представить эту область (набор ячеек) одним цветом (скажем, наиболее часто встречающийся в этой коллекции)
Одна вещь, о которой я подумал, чтобы сделать это, это использовать иерархическую структуру дерева / пирамиды, где на листьях у вас есть каждая клетка. Каждый родительский узел содержит сводную информацию о каждом из его дочерних узлов. Поэтому, чтобы нарисовать карту с высоким уровнем масштабирования, мне нужно всего лишь спуститься на несколько уровней в дереве, а не смотреть на каждую ячейку по отдельности. Тем не менее, распространение изменений от листьев к родителям, а затем и к каждому более высокому уровню кажется, что в большой сетке для каждой итерации цикла потребуется довольно много времени.
Есть ли лучший способ сделать это? Кажется, что эта проблема должна была решаться раньше людьми в мире графики / игр, но у меня возникают проблемы даже с поиском правильных ключевых слов для Google, поэтому любая помощь или направление приветствуются. Спасибо.