2011-09-26 49 views
1

我的小提琴:http://jsfiddle.net/G5mTx/10/SVG/Raphael,如何在JavaScript中实现DOT算法? (图组织)

正如你所看到的,我组织节点当前的方式确实不均衡,且有一定的重叠,当父节点有超过1子节点。

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

基本上,DOT组织的节点,使得所述图表是最佳的,这意味着它是简洁,具有最小线路交叉,并且是平衡的。

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

我的意思是,我可以做SVG生成服务器端..但是,然后我怎么会悬停/点击事件的节点,并告诉服务器节点表示在线重新分配的模型?

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

+0

祝你好运,我试图完成同样的事情(用画布直接操作低级别)。试图将我的头围绕DOT算法... – chocojosh

回答

0

我用的正是这种情况挣扎着跑了DOT算法我的服务器上,只发送了节点返回给浏览器的新坐标。最终我发现设置不令人满意。

我改用使用D3's force layout algorithm,这是在Javascript中实现,似乎比DOT更现代,现在我更快乐。