как проверить коллекцию прямоугольников на наличие дыр и пересечений?

Я ищу способ проверить коллекцию (Java TreeSet) прямоугольников - реализованную «сопоставимым» классом Java с использованием диапазона гуавы Google для диапазонов x и y - на наличие пересечений и дыр. Я знаю, что можно использовать kd-деревья, но я понятия не имею, как построить такое kd-дерево (для прямоугольников это должно быть 4d, не так ли?) и как решить проблему (пересечение, отверстия).

при сортировке приоритет отдается оси x над осью y.

РЕДАКТИРОВАТЬ: (попробуйте переформулировать проблему): вариант использования - создание произвольных таблиц (состоящих из 2 или 3 блоков прямоугольников «заголовок», «предварительный столбец», «данные»). Я должен гарантировать, что в каждом блоке нет пересечений и дыр (т.е. предоставленных недопустимым HTML или другими источниками данных таблицы) (кроме этого блоки должны соответствовать друг другу). В настоящее время (только что получил представление) я пытаюсь сохранить в 2d-массиве, какие позиции (x, y) заняты. в конце все позиции должны быть заняты ровно один раз.

5
задан dermoritz 15 February 2012 в 15:31
поделиться