Алгоритъм за намиране на затворени контури

Задачата е да се намерят затворени контури от наличните сплайни. Простата проверка на началото и края на сплайните не е подходяща, тъй като сплайнът може да образува затворени възли. Прилагам и чертеж, за да е по-ясно какво се иска.
Фигурата показва линиите и случаите, когато контурът е затворен и кога не. Различни цветове маркират различни шлици, т.е. контурът може да бъде оформен от набор от шлици.


Горчиво, но не знам как да го изразя с думи :( Нищо не ми идва на ум, затова нарисувах.
Е, например, този затворен четириъгълник по същество има 5 точки, 4 - които са начертани и една, която лежи на една от четирите начертани точки, като по този начин затваря контура. В този случай е достатъчно да проверим началната и крайната точка и ако техните координати съвпадат, тогава можем да заключим, че контурът е затворен, но какво да кажем, когато много затворени триъгълници, четириъгълници или многоъгълници се образуват в един сплайн (както е показано в запълнения многоъгълник)? И ако контурът е затворен не от един сплайн, а от няколко (както е показано в многоцветния многоъгълник)?
Наистина, трябва не само да определя дали има затворени, но и да намеря всички тези точки, за да мога да нарисувам тези контури.