Попробую сделать так:
-Рассчитаю все точки пересечения отрезков. По данному алгоритму
http://algolist.manual.ru/maths/geom...lineline2d.php
-Отсортирую точки по общему весу (х+у) и по х
-У каждой точки будет свой х и у, массив ближайших точек и количество фигур которым может принадлежать точка
Затем буду брать в цикле:
- меньшую по весу точку
-из ее массива ближайших точек меньшую по весу точку
-от этой точки буду рассчитывать путь к начальной точке
-после завершения расчета пути уменьшаю фигуры в использованных точках. Если количество фигур равно нулю, то ставить запрет на использование точки в дальнейших расчетах.
И так пока все точки не закрою…