我正在製作一個簡單的遊戲,並且偶然發現了這個問題。假設2D空間中有幾個點。我想要的是讓點彼此靠近以某種方式相互作用。找到另一點的某個半徑內的所有點
讓我扔的圖片在這裏爲更好地理解這一問題:
現在,問題不是關於計算距離。我知道該怎麼做。
起初我有大約10分,我可以簡單地檢查每一個組合,但正如你可以假設的那樣,隨着積分數量的增加,這是非常低效的。如果我總共有一百萬分,但所有這些分數彼此之間會很疏遠呢?
我試圖找到一個合適的數據結構或一種方法來看待這個問題,所以每個點只能介意他們的周圍而不是整個空間。有沒有已知的算法?我不完全知道如何命名這個問題,所以我可以谷歌到我想要的。
如果你不知道這種已知的algorighm,所有的想法都非常受歡迎。
我不知道如果是最好的主意,但它總比沒有好。將二維空間存儲在此結構中:array(array(bool)),如果有一個點,則爲true;如果沒有,則爲false。因此,當你想在半徑內找到點時,你不必評估整個矩陣,只需評估半徑範圍內的位置 –
https://en.wikipedia.org/wiki/K-d_tree – amit
@pablito。這實際上是我的第一個想法之一。仍然不太喜歡檢查你周圍的每個像素的想法。 – Saraph