У меня есть много горизонтальных и вертикальных линий, которые составляют прямоугольник, такой как в этом примере.Учитывая множество горизонтальных и вертикальных линий, как найти все прямоугольники, которые имеют какой-либо суб-прямоугольник внутри них?
Есть ли алгоритм или код, который может найти каждый прямоугольник, который не содержит еще один прямоугольник. Я имею в виду, что самый большой прямоугольник в этом изображении не является прямоугольником, который я ищу, потому что он содержит другие прямоугольники внутри него.
Прямоугольники, которые я ищу, должны быть пустыми. У меня есть список начальных и конечных точек каждой строки, например (a, b) - (c, d). Я хочу в результате получить список прямоугольников (x, y, w, h) или эквивалент.
Обратите внимание, что некоторые линии имеют прямые, пересекающие их под прямыми углами, например, верхняя строка самого широкого прямоугольника на этом изображении представляет собой одну линию, в которой она имеет пересекающуюся вертикальную линию, идущую вниз.
Какой список, например '[((x1, y1), (x1, y2)), ((x1, y2), (x1, y3)), ((x1, y1), (x1, y3)), ...] '? – Aprillion
Просто нарисуйте область с помощью метода наводнения из любых белых точек. Каждой области с 4 углами будет прямоугольник. –
Это не растровое изображение, у меня есть список горизонтальных и вертикальных линий. Нет наводнения. Не уверен, что вы подразумеваете под списком с увеличением y1, y2, y3, мне нужен список прямоугольников, в результате чего он представлен. – Phil