2015-11-01 59 views

回答

2

Pathfinding維基百科的文章可能會有所幫助,因爲可能會在圖表和圖形搜索算法的相關主題從那裏的聯繫。除此之外,這是一個快速解釋器的嘗試。

節點是地方,有人就可以了,它們與其他節點的連接定義有人能地之間的旅行。一起,(連接的)節點的集合形成一個圖。

GKGraphNode是節點的最普遍的形式 - 這些節點不知道他們在哪裏的空間,只是他們到其他節點連接的任何東西。 (對於基本路徑查找已經足夠了,但是......如果有一個圖表,其中A連接到B並且B連接到C,則從A到C的路徑將通過B,無論這些節點位於何處,如下所示。)

enter image description hereenter image description here

GKGraph是節點的集合,並且提供工作曲線圖作爲一個整體,如the important one for finding paths功能。

GKGridGraphNodeGKGraphNode2DGKGraphNode的專用版本,它增加了節點在空間中的位置知識 - 無論是整數網格空間(如棋盤)還是開放式2D空間。一旦添加了這類信息,包含這些類型節點的GKGraph可以在尋路時考慮到距離。

例如,看一下這個圖片:

enter image description here

如果我們只是用GKGraphNode,所有我們談論的是一個節點被連接到。因此,如果我們要求從A到d的最短路徑,我們可以得到任何ACDABD,因爲它是連接兩種方式的資格賽數。但是,如果我們使用GKGridGraphNodeGKGraphNode2D,我們正在查看節點之間的線路長度,在這種情況下,ACD是最短路徑。

一旦你開始在(某種座標)空間定位的節點,它有助於能夠在圖形上作爲一個整體在空間中操作。這就是GKGridGraphGKObstacleGraph進來,

  • GKGridGraph作品與GKGridGraphNode S和讓你做的事情一樣創建一個圖表,以填補一組維度的(比如說,一個10×10格,對角線移動允許的),而不是讓你自己創建並連接一堆節點。
  • GKObstacleGraph通過讓您將區域標記爲不可通過的障礙物並自動管理節點和連接來繞過障礙物,爲自由二維空間圖添加更多內容。

希望這有助於一點。有關更多信息,除了reference docsguide,蘋果還有一個WWDC video,顯示這些東西是如何工作的。