我正在爲C++中的車輛路徑問題的變體開發某種啓發式。在C++中使用「已知」座標的圖形繪製/ TSP路由繪圖:如何?哪個圖書館/工具?
生成解決方案後,我想繪製此解決方案。該解決方案是各種旅遊的組合,所有旅遊都在一個共同的倉庫開始和結束。 因此,我有一個頂點集,其中包含由兩個頂點ID分別定義的所有座標和邊。此外,我擁有頂點對之間的所有距離。
在我的程序中將其繪製在一個額外的窗口中會很有幫助,但是將圖形寫入圖形文件也應該是可以的。
什麼是一個簡單的方法來繪製?你將如何解決這個問題?
首先,我試圖尋找常見的圖形可視化軟件包(graphviz,tulip,networkx(python)),但我意識到所有這些都專門用於圖形佈局(當沒有座標時)。當我錯了時糾正我。 我不知道是否有可能告訴這些包,我已經有座標,幫助佈局算法。
我試過的下一件事是CGOM庫與geomview輸出 - >沒有運氣,直到現在 - > Ubuntu的崩潰geomview。
還有一個問題:使用一些非佈局二維圖庫來冒險繪製一個繪圖是不是一個好的想法,這是不是真的很好看(有更多的事情比縮放嗎?使用一些基於佈局算法的庫(例如graphviz,tulip,networkx),給它們提供頂點之間的距離,並希望佈局算法在保持距離的同時以良好的視圖進行繪製?
- 如果非layouting-plotting是做到這一點的方式:你推薦哪個庫?
- 如果基於佈局的繪圖是實現它的方法:我如何利用這些庫中的距離/座標?你推薦哪個圖書館?
感謝您的所有意見!
薩沙
編輯:我完成使用PLplot庫原型實現(http://plplot.sourceforge.net/)。結果很好,現在應該足夠了。我發現並選擇了這個庫,因爲一個相關的項目(VRPH軟件包/ Groer)使用這個圖並且分發了源代碼。所以實施在很短的時間內完成。 API在我看來有點尷尬和低級。也許有一些更現代的(也許不是一個基於c的庫)在那裏? MathGL? DISLIN?也許我會嘗試他們。
有關在車輛調度問題繪製多個旅行團的好處是,「沒有那麼糟糕」的算法往往會發現很好的非重疊和不同的旅行團是眼睛;-)
如果您知道座標,那麼只需繪製圖表即可。 – Dialecticus 2010-11-01 16:06:25
任何圖書館的建議嗎? – sascha 2010-11-01 16:09:25
今年夏天,我有一個項目學生正在與boost圖庫一起工作。如果你感興趣(並且不會太皺眉),我可以在某個地方使存儲庫具有全球可讀性併發佈一個URL。 – Flexo 2010-11-01 16:47:20