Не в состоянии исправить положение х и у в сигма JS
Я попытался нарисовать график в виде круга. Я дал координаты x и y для узлов следующим образом: X = Math.cos (Math.PI * (u)/ l)* R
Y = Math.sin (Math.PI * (и)/ л)* Р
где u - инкрементор, а l - число узлов, а R - радиус. уравнение кажется правильным. Проблема в том, что график наклонен влево.
Для простого графика также (для двух узлов) ребро не находится в горизонтальном положении, я думаю, что положение x и y изменено в некотором другом вызове функции (библиотеки sigma)
Может ли кто-нибудь помочь мне в этом отношении
2 ответа
В примере animate.html в sigma.js есть пример "кругового графа".
И правильная формула:
circular_x: L * Math.cos(Math.PI * 2 * i / N ),
circular_y: L * Math.sin(Math.PI * 2 * i / N ),
Где - L: - радиус i: индекс N: номер - r узла
Если я использую этот код и создаю график из двух узлов, ребро будет горизонтальным.
Я использую сигма v1.0.3
Я столкнулся с похожей проблемой, но ответ @logisima не решил мою проблему.
Иногда эта проблема может быть связана с ключом узла. Ожидается, что узлы графа будут иметь уникальные ключи.
Убедитесь, что ваши ключи уникальны
const allNodes = [{
key: '1' // UNIQUE,
name: 'anyname 1',
label: 'LABEL1',
x: Math.random() * 2 // LENGTH OF ALL NODES,
y: Math.random() * 2 // LENGTH OF ALL NODES,
},
{
key: '2' // UNIQUE,
name: 'anyname 1',
label: 'LABEL1',
x: Math.random() * 2 // LENGTH OF ALL NODES,
y: Math.random() * 2 // LENGTH OF ALL NODES,
}]