Где бы я искал алгоритмы, которые принимают двумерную сетку значений, которые равны 0 или 1 в качестве входных данных, а затем идентифицируют в ней все возможные непересекающиеся прямоугольники?
В более практическом объяснении: я рисую сетку, представленную несколькими квадратами, и я хочу найти способ объединить как можно больше соседних квадратов в прямоугольники, чтобы сократить время, затрачиваемое на циклическое перемещение. каждый квадрат и рисовать его.
Максимальная эффективность не нужна, важнее скорость.
Приложение: Видимо, то, что я ищу, похоже, это метод под названием Тесселяция. Теперь мне нужно только найти хорошее описание для этого конкретного случая.
Приложение 2: Граница квадратов «1» будет нерегулярной, а в некоторых случаях даже не соединенной, так как распределение квадратов «1» будет совершенно случайным. Мне нужно, чтобы эти неправильные формы были идентифицированы и разделены на правильные прямоугольники.
Правильный ответ: чтобы получить наилучший баланс между скоростью и эффективностью, оптимально использовать данные сетки для заполнения дерева квадрантов, при этом каждый узел имеет значение состояния либо пустой/частично заполненный/заполненный.