2017-06-14 106 views
0

在這本書The design and analysis of spatial data structures P.56 中提到,點四叉樹刪除(沙美H.)

一旦組候選節點的發現,一個學嘗試以發現「最佳」人選,這成爲替代節點。選擇最佳候選人有兩個標準。標準1規定,比其他任何候選人的論文軸線的同一側接近它的每一個毗鄰軸的,如果這樣的候選對象存在

我是想實現這個候選人的選擇,但不能真的弄清楚這個算法應該如何工作。 我開始非常簡單,創建了兩個排序列表,一個按x中的差異排序,另一個按y中的差異排序,如果兩個對象相同,則此對象/點將是我的結果。如果不是,那麼我要麼沒有候選人,要麼可能是2,這是我卡住的地方!

另一個計算策略是某種奇怪的,但我仍然會顯示僞代碼,也許有人有一個想法

function chooseCandidate(candidate) 
    clockwiseCandidate = candidate.cQuad(candidate.index) // Index is from 0-3 and cQuad returns (index-1)%4 
    counterClockwiseCandidate = candidate.ccQuad(candidate.index) 
    if candidate.x < ccCandidate.x: 
     possibleWinner = candidate 
    else if candidate.y < cCandidate.y: 
     possibleWinner = candidate 

等等,這是不是一個真正的解決辦法只是一個mindgame從我... 所以我的問題是,有人可以解釋這個問題是什麼?或者我可以如何解決這個問題? (請注意,一個完整的描述在上面的鏈接中給出)

+0

爲什麼擔心當你有四頁後的解決方案? –

+0

請參考您認爲解決方案是什麼?我只看到「J < - 」最佳「替換節點P; – greedsin

+0

對不起,你是對的,代碼是不完整的 –

回答

0

我的理解:

掃描候選人,併爲你去記住

  • 所有四個象限中,候選者是「比這些座標軸的同一側上的任何其他候選人更接近它的每個邊界座標軸」。

  • 到目前爲止具有最小L1度量的候選者。

然後,如果您沒有找到第一種準確的一個候選者,請使用最後一個。

+0

是的,這也是我的理解,但事實證明,」對於所有四個象限, 「比其他任何候選人在這些座標軸的同一側更接近每個軸線」,比我看起來更困難,而且我也無法使其工作! – greedsin

+0

嗯,我會試一試簡單的方法,並更新我的答案/評論 – greedsin

+0

好吧這不會真的工作,因爲你需要比較不是點,而是在各自的座標軸,這取決於你的哪個象限切換如果你有一個解決方案,請隨時分享:) – greedsin