Я пытаюсь расширить демонстрацию Connected Objects, допустив два узла (формы Circle
class) для двойной ссылки (A соединяется с B с помощью Arrow1
, а B соединяется с A с помощью Arrow2
). Работаю с пакетом react-konva
.
Я реализовал демонстрацию Code Sandbox с некоторыми базовыми функциями. .
В строке 5
, 6
вы найдете информацию об узлах, в строке 21
существует высокоуровневый компонент, который создает стрелку на основе начальной и конечной позиции узла.
В примере по умолчанию стрелки работают должным образом. Если вы попытаетесь установить значение redNode.x
на 300
, стрелки перекрываются. То же самое происходит, когда blueNode.x
равно -100
. Это как-то связано с тем, как я вычисляю стрелки (я подозреваю, что уравнения в строке 38
).
Также обратите внимание, что когда redNode.x
перемещается к значению 300
, две стрелки приближаются друг к другу (это происходит и с другими значениями), чего я не хочу. Я ожидаю, что стрелки будут иметь одинаковую форму, когда два узла меняют положение, а не перекрывать друг друга или приближаться друг к другу. К сожалению, отсутствие у меня математики не помогает мне решить проблему. Я также безуспешно пытался создать нестандартную форму, используя метод quadraticCurveTo
.
Заранее спасибо за помощь. Я ценю все решения.