蜂窩網格的座標以及尋路

2022-08-04 08:06:14 字數 676 閱讀 7206

蜂窩網格就是這樣的六邊形格仔

仔細觀察的話,可以發現,蜂窩網格和四邊形網格的區別就在於,蜂窩網格把偶數行的格仔都錯開了。

假設乙個格仔在四邊形網格中的座標是(x,y),那麼它在蜂窩網格的座標應該是:

(sqrt3 * (x + (y % 2) / 2) , y * 3 / 2)

這樣就能把蜂窩網格用乙個二維陣列儲存起來了。

接下去是乙個尋路演算法,我們需要找出以乙個格仔為起點,一定移動力下所有可以到達的格仔,就像上面那張圖里展示的那樣:

public

class

hextile

//返回蜂窩一周的六個蜂窩,理論上要另寫乙個函式判斷是否越界了的,這裡直接在方法裡判斷了

public list around(int

i)//

返回以此物件為起點,移動力為m的蜂窩,arr為移動力阻礙陣列

public list findarea(int

[,] arr)}}

if(bo) }//

操作完畢,將該格仔從待操作列表中刪除

a.removeat (j);}}

return

(list);

}}

python尋路 Python版的A 尋路演算法

關閉 致敬愛的及本站會員的一封信 作為碼農集市 coder100 平台的站長,我不得已採取這樣的方式來和各位來到我們平台逛逛的小伙們做一次推心置腹的暢談。真誠的希望您能夠抽出寶貴的一點時間認真閱讀以下我所闡述的內容,以此讓我們彼此之間能夠達成一定的共識,這樣對於彼此非常重要!為了讓我的闡述更加的直白...

python尋路 Python中的尋路效率

我寫了一些 在樹狀流網路中找到給定範圍上游的所有路徑。例如,如果我表示以下網路 4 5 8 2 6 9 10 1 11 3 7 作為一組父子對 它將返回節點上游的所有路徑,例如 get paths h,1 edited,had 11 instead of 1 in before reach 2 re...

COPY NAV導航網格尋路 光照射線法

上圖是乙個由任意凸多邊形構成的導航網格,白線包圍區域代表著不可進入的障礙區域,紅線包圍區域則可以進入或穿越。網格中所有多邊形的頂點儲存次序均為順時鐘序。在下面的討論中,我們的運算一概採用左手系進行。假設當前所處的位置為p0,視線方向向量為n0,p0位於多邊形a中,我們知道每一條邊的兩側的多邊形的編號...