Добавил более менее приемлемый алгоритм действия
Осталось решить вопрос как сделать чтобы связи не пересекались