Не в состоянии исправить положение х и у в сигма 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,
}]
Другие вопросы по тегам