在我的数据库中,我有节点和边。
位置必须在 gexf 生成时生成,节点不得重叠并且
生成这种图: http ://www.nwoods.com/components/images/force-directed-layout.png
我使用 Sigma.js 来展示图表。
如何使用力导向算法计算节点位置,并使用根项?
或者有一个布局可以从节点和边缘生成一个不重叠和输出的布局,就像上面的这个 png?
编辑:
生成节点位置的PHP代码:
function _generate_gexf_node($test=false){
$count = 0;
foreach ($node_array as $node) {
$node_size = '22.714287';
$node_poz = ' x="'.rand(10, 300).'" y="'.rand(10, 300).'" z="'.rand(10, 300).'" ';
$node_color = ' b="45" g="72" r="216" ';
$data['node'][] = '<node id="'.$node['node_id'].'" label="'.$node['label'].'">
<attvalues>
<attvalue for="authority" value="0.01880342"/>
<attvalue for="hub" value="0.01880342"/>
</attvalues>
<viz:size value="'.$node_size.'"/>
<viz:color '.$node_color.'/>
<viz:position '.$node_poz.'/>
</node>
';
$count++;
}
return $data;
}
我怎样才能在“运行时”中找到位置,喜欢这个http://www.nwoods.com/components/images/force-directed-layout.png?
我在哪里可以找到一帆胡力定向算法的实现?
还是特殊的 Bubble 布局实现?