Algoritmos de relleno de inundación de gráficos vectoriales?

stoy trabajando en una aplicación de dibujo simple y necesito un algoritmo para realizar rellenos de inundación.
El flujo de trabajo del usuario se verá así (similar a Flash CS, pero más simple):

el usuario dibujaDerech líneas en el espacio de trabajo. Estos se tratan como vectores y se pueden seleccionar y mover después de dibujarlos.user selecciona la herramienta de relleno y hace clic en el área de dibujo. Si el área está rodeada por líneas en todas las direcciones, se aplica un relleno al área.

si las líneas se mueven después de aplicar el relleno, el área de relleno se modifica en consecuencia.

Cualquiera tiene una buena idea, ¿cómo implementar dicho algoritmo? La tarea principal es básicamente determinar los segmentos de línea que rodean un punto. (y almacenando esta información de alguna manera, en caso de que las líneas se muevan)

EDIT: una imagen de explicación: (puede haber otras líneas, por supuesto, en el lienzo, que no importan para el algoritmo de relleno)

EDIT2: una situación más difícil:

EDIT3: he encontrado una forma de rellenar polígonos con agujeroshttp: //alienryderflex.com/polygon_fill, ahora la pregunta principal es, ¿cómo encuentro mis polígonos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta