0
我正在試驗QuadTree class和QuadTreeNode class。我的問題如下。一旦我將元素放到QuadTree中,是否有任何方法根據它們的地理位置(即西北,東北,西南和東南)來提取這些元素,而沒有定義邊界框?QuadTree提取元素
這是我到目前爲止所做的。四叉樹中I類推出的功能getChildren
:
public Vector<E> getChildren(int loc)
{
return top.getChildren(loc);
}
而在類QuadTreeNode我介紹這一點:
public Vector<E> getChildren(int loc)
{
if (loc == 0)
return _children[NORTHWEST].getItems();
else if (loc == 1)
return _children[NORTHEAST].getItems();
else if (loc == 2)
return _children[SOUTHEAST].getItems();
else
return _children[SOUTHWEST].getItems();
}
然後創建了一個四叉樹,並試圖根據它們的地理位置,以獲得元素。
_Qtree = new ITSQtree<Obj>();
for(Obj o : Objs)
_Qtree.put(o);
List<Obj> childrenNORTHWEST = _Qtree.getChildren(0);
List<Obj> childrenNORTHEAST = _Qtree.getChildren(1);
List<Obj> childrenSOUTHEAST = _Qtree.getChildren(2);
List<Obj> childrenSOUTWEST = _Qtree.getChildren(3);
問題是結果總是空集[]
。
感謝。 getItems()是這樣定義的:\t public Vector getItems(){ \t \t return _items; \t} –
如果它解決了您的問題,請將其標記爲已回答。 –