0

我试图在圆形布局中绘制一个图形。我给节点的 x 和 y 位置如下 X=Math.cos(Math.PI*(u)/l)*R

Y=数学.sin(数学.PI*(u)/l)*R

其中 u 是增量器,l 是节点数,R 是半径。方程似乎是正确的。问题是图形向左侧倾斜。

对于一个简单的图形也(对于两个节点)边缘不在水平位置,我认为 x 和 y 的位置在其他一些函数调用(sigma 库)中发生了变化

谁能在这方面帮助我

4

2 回答 2

2

在 sigma.js 的 animate.html 示例中,有一个“圆图”示例。

正确的公式是:

circular_x: L * Math.cos(Math.PI * 2 * i / N ),
circular_y: L * Math.sin(Math.PI * 2 * i / N ),

在哪里

  • L : 是
  • 半径 i:索引 N:数字
  • 节点的 r

如果我使用此代码,并生成两个节点的图,边是水平的。

我用的是 sigma v1.0.3

于 2015-05-12T20:35:12.780 回答
0

我遇到了类似的问题,但@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,
}]
于 2021-12-19T18:23:00.090 回答