2011-09-26 48 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更現代,現在我更快樂。