SVG / Raphael,如何在javascript中实现DOT算法?(图组织)



我的小提琴:http://jsfiddle.net/G5mTx/10/

正如你所看到的,我目前组织节点的方式没有平衡,当父节点有多于1个子节点时,会有一些重叠。

对于那些不熟悉DOT算法的人,可以在这里找到一个简短的,模糊的解释:http://www.ece.uci.edu/~jhahn/pdf/dot.pdf

基本上,DOT组织节点使图是最优的,这意味着它是简洁的,有最小的线交叉,并且是平衡的。

我听说有些人在发送到客户端之前运行DOT算法服务器端…这样会更快…但我需要每个节点都有悬停和点击状态,因为我计划允许用户重新分配箭头/线条指向的位置。

我的意思是,我可以在服务器端生成SVG。但是,我该如何将悬停/单击事件连接到节点,并告诉服务器该节点在重新分配时代表哪个模型?

注意:我的服务器运行Ruby on Rails 2.3.8

我遇到了这种情况,在我的服务器上运行DOT算法,只将节点的新坐标发送回浏览器。最后,我发现设置不令人满意。

我切换到使用D3的力布局算法,这是在Javascript中实现的,似乎比DOT的更现代,现在我更高兴了。

最新更新