2010-11-01 17 views
2

我正在爲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?也許我會嘗試他們。

有關在車輛調度問題繪製多個旅行團的好處是,「沒有那麼糟糕」的算法往往會發現很好的非重疊和不同的旅行團是眼睛;-)

+1

如果您知道座標,那麼只需繪製圖表即可。 – Dialecticus 2010-11-01 16:06:25

+0

任何圖書館的建議嗎? – sascha 2010-11-01 16:09:25

+0

今年夏天,我有一個項目學生正在與boost圖庫一起工作。如果你感興趣(並且不會太皺眉),我可以在某個地方使存儲庫具有全球可讀性併發佈一個URL。 – Flexo 2010-11-01 16:47:20

回答

2

真的很不錯不太清楚你要存檔的內容,但如果我正確理解你的問題,那麼你可以使用OpenGL來完成。有頂點座標,它應該相當容易。

+0

我想要實現的是一個簡單但可視的我的遊覽情節,但是沒有投入太多的工作(除非有一些積極的副作用;例如在增強圖庫中的圖表視圖)。我不是繪圖和/或圖形用戶界面方面的專家,也不想成爲其中一員(特別是GUI)。因此,我有點偏向像OpenGL那樣強大的東西,但我認爲它在短時間內並沒有真正學到。我希望在未來的編程工作中不會那麼重要。但是,無論如何感謝您的帖子。 – sascha 2010-11-01 21:39:18