目前我正在研究最小走廊長度算法,部分設置涉及到問題中所有相鄰點的列表。目前我有兩個數組:一個在x座標上用相鄰點排序,另一個在y座標上用點排序。另外,通過簡單地查看兩個列表中的附近點,我發現鄰接點,如果點具有相同的y(在列表中按x相鄰排序),則它們位於同一行上。同樣,如果他們有相同的x(在y列表中)謊言在同一行上。如何檢測對象是否位於兩點之間
例如,假設我們有以下的房間:
然後用X-相鄰點列表將按照以下順序幾點:{V1,V2,V3,V4,V5, ... v21,v22}(它們保持與它們標記的順序相同) 此外,具有y個相鄰點的列表將爲:{v22,v16,v14,v9,v4,v13,v8,v3,v21 ,... v5,v1}(基本上是y = x上圖的反映)
如前所述,通過查看列表中的附近點找到相鄰點。該工程罰款最高分,但是它失敗以下邊緣情況:
爲X相鄰的列表將有{V1,V2,...... V6,V7 ... V11,V12 }並且我的算法會將v6和v7檢測爲相鄰點。 如何檢測到這兩點之間有空間?請注意,我有一組矩形和頂點也可用於我。 在此先感謝。
這是什麼_exactly_是否意味着兩點在這種情況下相鄰? –
@DavidZaslavsky這意味着點是在同一行。 例如在第一個圖中,v1與v2和v5相鄰。 v13將與v8,v12和v14相鄰。我希望這個澄清! – pretobomba
好的,所以在第一個圖中,v13不被認爲與v3,v10和v11相鄰? –