Это не нужно. Возьмите любой полигон в котором нет контура. Выполните закраску белым. Закрасьте полигоны с контуром серым. Остальные полигоны закрасьте чёрным. Оцените соотношение белых и чёрных полигонов. Выберите, какой цвет внутри контура. Переходите к ранее изложенному алгоритму для точки.
Тут все равно стоит вопрос с начальным выбором того первого полигона, с которого начнется закраска, может быть 4 случая:
1) белый полигон окажется внутри контура, черный снаружи - удача, задача решена
2) белый полигон окажется снаружи контура, черный внутри - удача, задача решена
3) белый полигон окажется внутри контура и черный внутри - мы закрасим две области внутри и поделим ее на псевдо внутреннею и псевдо наружную
3) белый полигон окажется снаружи контура и черный снаружи - мы закрасим две области снаружи и поделим ее на псевдо внутреннею и псевдо наружную
Возможно я и не догоняю вашу мысль, но мы опять возвращаемся к тому, что нужно сначала определить некую точку
.
Возможен вот такой способ решения в данной ситуации
На рисунке для наглядности полигоны представлены треугольниками. Мы относительно сегмента контура (красным цветом) определяем точки полигонов(к которому принадлежит данный сегмент) левые и правые. Левые точки красим зеленым, правые - синим. Далее ищем полигоны (соседние тому, что содержит данный сегмент контура), которые содержат точки одного цвета, например, левые и не содержат правые. Да, сами испытываемые полигоны не должны содержать сегментов контура.