Боюсь, единственный способ - установить координаты узлов явно:
var nodes = new vis.DataSet([
{id: 1, label: 'Node 1', x: 0, y: -100},
{id: 2, label: 'Node 2', x: 0, y: 0},
{id: 3, label: 'Node 3', x: 0, y: 100},
{id: 4, label: 'Node 4', x: 100, y: 0},
{id: 5, label: 'Node 5', x: -100, y: 0}
]);
Дело в том, что физика работает только с существующими узлами и ребрами. Тем не менее, вы можете попробовать один из следующих приемов:
- добавить скрытые ребра между 2 и 4 и 2 и 5 - таким образом, вы можете надеяться , что, поскольку узлы в этих парах притягиваются друг к другу, узел 2 заканчивается как минимум ближе к 4 и От 5 до 4;
- или вместо того, чтобы задавать координаты явно, используйте некоторую предопределенную разметку, чтобы расположить узлы в нужном порядке; однако, насколько мне известно, никакой существующий макет не гарантирует, что это будет так (см. эти , эти проблемы : это vis.js-версия -зависимый и не надежный)