這是我的問題。我有一系列建築物不同部分的照片,我需要將它們連接在一起。之後,我需要按順序顯示每張照片,以顯示從A點到B點的路徑......即,從教室到火災逃生。C#圖最短路徑算法
我已經做了一些研究,並且我相信一個非定向的未加權圖應該可以做到。
因爲我在這方面沒有太多的經驗。我想知道如何將照片存儲在數據結構中,以及是否有任何圖書館可以完成這項工作?
這是我的問題。我有一系列建築物不同部分的照片,我需要將它們連接在一起。之後,我需要按順序顯示每張照片,以顯示從A點到B點的路徑......即,從教室到火災逃生。C#圖最短路徑算法
我已經做了一些研究,並且我相信一個非定向的未加權圖應該可以做到。
因爲我在這方面沒有太多的經驗。我想知道如何將照片存儲在數據結構中,以及是否有任何圖書館可以完成這項工作?
是的,你需要應用一些算法,可以爲你解決問題。
你可以使用這個偉大的libray:
解決這個問題的一部分。關於存儲數據的方式,您需要定義頂點(照片)和頂點之間的邊緣,如(照片A-photoB),(照片A-photo C)等等。
您必須從數據庫中恢復該信息,並在quickgraph中加載相應的結構,並讓它爲您找到路徑。
這裏有大量的文檔和示例:
類似,對於這個我用過的東西:
IEdge<T>
(T應該是你照片ID類型,int或其他) - 代表照片之間的邊緣(地點)AdjacencyGraph<T,MyRelation>
。你可用MyEdges加載(這是有向圖)FloydWarshallAllShortestPathAlgorithm<T, MyRelation>
然後繼承你必須:
該算法可以讓你指定你可以從一個給定的照片(邊)去哪些照片,假定該距離是它們之間的相似,但你必須定義所有路線(從A到B,的B到A等)。這是OP的「未加權」部分。如果你的情況不同,你將不得不閱讀文檔。
如果您更喜歡添加A到B也將B添加到A,則可以實施UnDirected
圖。它可以省掉一些代碼行,但我通常更喜歡自己添加所有的可能性。 「從圖書館我可以去過道A和過道B,從過道B到圖書館和實驗室」等等,這更容易想到,試圖想到所有的邊緣。
您可以在數據庫中創建兩個表:
這是易於維護和實現。
輝煌,解釋。我重視你的迴應 – clockworkworks
你在尋找一種方法來確定哪些圖像相互連接? –