Эти линии образуют 2 квадрата. Как разбить этот список на списки координат отдельных квадратов? Т.е. получить list1[[10, 10, 20, 10],[20, 10, 20, 20], [10, 20, 20, 20], [10, 10, 10, 20]] и list2[ [0, 0, 40, 0], [40, 40, 40, 0],[0, 40, 40, 40], [0, 0, 0, 40]] ? Группируются по одинаковым координатам начала и конца.
Внешний цикл будет отвечать за поиск одной замкнутой фигуры. Выход из цикла - когда закончатся неотсортированные отрезки.
Внутренний цикл будет искать среди неотсортированных отрезков тот, который либо начинается, либо заканчивается точкой, которая формирует текущую фигуру. Когда такие закончатся - новый квадрат выносим в список фигур. На первом шаге берем в текущую фигуру первый неотсортированный отрезок.
В зависимости от условий задачи, еще надо проверять что это именно квадрат, что новые отрезки расширяют ломаную (не начинаются из середины ломаной) и т.д.
так то да, но в списке они могут идти в разноброд и фигур может быть несколько. Здесь нужно как-то отсеивать по координатам, т.е. стартовая точка одной линии является концом другой.