Nan, может такой алгоритм:
Добавь в таблицу связей, где у тебя коды пары нейронов, поле "номер слоя". По умолчанию он 0. То есть все элементы сначала рисуются на нулевом слое. Если начинается каша связей, то правой лапой по линии связи и в контекстном меню выбираешь "перенести на новый слой" - и в поле втыкается следующий по порядку номер. Если слои уже есть, то мессага с предложением указать на какой из них перенести. В итоге связь с весом и пара элементов показываются как клоны в другой части холста - другом слое. Так можно разносить связи по слоям. Ну и понятно, что при активации нейрона его клоны так же должны активироваться на всех слоях - это же один элемент, просто показанный на разных слоях.
Другой вариант - скрывать/показывать отдельные или группы связей. Клоны все таки будут подвешивать без того загруженный сервак, а тут просто разнесение связей по слоям просто через их группировку. Мне лично этот вариант больше нравится. Рядом со схемой список слоев, тыкаешь по нему и меняются решетки связей, как они разнесены по слоям - поочередно активируешь слои. Тут так же поле номер слоя в таблице связей и фильтр по нему при отрисовке. А при расчете понятно без фильтра по всем.
Имхо масштабированием холста не победить кашу связей. Надо делать как в чертежах, или как в фотошопе. И кстати, разнесение по слоям по сути и будет показывать эволюционный путь развития схемы. А дальнейшее развитие - на новом слое шунтируем часть связей предыдущего и лепим новые - как это и происходит в реальности.
22.07.2020г. 18:32:10