解決圖片混亂!
回答
你需要做的是爲一個拼圖的每個面定義一個索引詞彙,這樣右邊的邊的索引可以告訴你相應的左邊的索引是什麼(例如,一個簡單的詞彙:「凸」和「凹」,在面上「凸」,意味着在匹配的相對面上「凹」),然後根據索引詞彙對每個片段進行分類。詞彙越精細,面孔匹配越明顯,你的算法越快,但是你實現它。 (例如,你可能有「平邊,直邊,左邊,直邊,右邊,右邊,凹形,凸形,旋鈕,旋鈕孔......)我們假設索引方案抽象實際的邊緣形狀,並且有一個謂詞「精確地擬合(piece1,edge1,piece2,edge2)」,只有當邊緣完全匹配時纔是真實的。我們進一步假設一個片段至多有一個完全匹配具有特定的邊緣
目標是生長一組區域,例如一組連接的片段,直到不再可能擴大區域爲止。我們首先用獨特的區域名稱標記所有片段,每片1個,並且所有的邊都是不匹配的,然後我們按任意順序枚舉這些條邊,對於每個具有邊E的枚舉的條P,使用索引方案來選擇可能匹配的條/邊對,檢查完全擬合的謂詞;最多一個Q,邊緣F,完全匹配將P和Q區域合併爲一個大區域。重複。我認爲這解決了這個難題。
這是一個很好的開始。謝謝! – Lazer 2009-08-31 18:04:59
解決拼圖遊戲基本上可以減少到匹配像邊緣喜歡邊緣。在一個真正的拼圖遊戲中,只有一對棋子可以沿着特定的邊緣正確地互鎖,並且每個棋子都會有角落,這樣您就可以知道某個特定邊的開始和結束位置。
因此,只需找到每個邊的端點並選擇幾個控制點即可。然後遍歷所有具有未綁定邊的棋子,直到找到合適的棋子。當沒有更多的未綁定邊緣時,你已經解決了這個難題。
爲了詳細說明Ira Baxter的回答,將問題概念化的另一種方式是將拼圖遊戲想象成一個圖形,其中每個圖塊都是一個節點,每個圖塊與另一個圖塊都是邊緣。例如,如果你正在設計一個益智遊戲,以這種方式存儲「答案」會使得「檢查這個是否合適」代碼快得多,因爲它可以簡化爲某種散列查找。
.1找到2x2克使得所有四條邊都適合。然後,評估圖像內容相互匹配程度。
P1 <--> P2 ^ ^ | | v v P3 <--> P4
0.2標籤方向(手動或試探),但只使用其中啓發式得分(排名爲),而不是最終的搜索條件。
0.3 形狀上下文
- 1. 解決混亂
- 2. 解決MVC混亂
- 3. 解決依賴性混亂
- 4. 片段混亂
- 5. .NET程序集解決混亂
- 6. 用python解決混亂的字謎題?
- 7. 如何解決接口混亂
- 8. Android片段混亂
- 9. 圖片命名約定混亂和UIBarButtonItem
- 10. URL解碼混亂
- 11. 類圖混亂
- 12. UML圖混亂
- 13. XML解析器罐混亂
- 14. CBC解密XOR混亂
- 15. 轉戰混亂和理解
- 16. 混亂求解URL重寫
- 17. 代理混亂的優雅解決方案
- 18. UnsupportedOperation:fileno - 如何解決這個Python依賴性混亂?
- 19. 混亂解決程序崩潰的運行
- 20. 如何複製混亂的Visual Studio解決方案?
- 21. 如何處理VS解決方案中的依賴性混亂?
- 22. 混亂
- 23. 混亂
- 24. 混亂
- 25. 混亂
- 26. Openshift:未解決的圖片
- 27. 解決圖片鏈接
- 28. 圖像混亂jQuery功能
- 29. 圖像在webkit中混亂
- 30. UNIX進程圖混亂
是「畫面混亂」像拼圖? – user49117 2009-08-28 02:15:22
拼圖遊戲或滑動拼圖遊戲? – 2009-08-28 02:15:47
這是一個拼圖遊戲 – Lazer 2009-08-28 03:45:25