第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

優(yōu)化多邊形搜索

優(yōu)化多邊形搜索

Go
慕運維8079593 2021-06-28 13:23:06
我將世界分成 X 個隨機多邊形。然后我得到一個坐標 C1,例如 (-21.45, 7.10),我想將正確的多邊形歸因于這個坐標。第一個解決方案是point_in_polygon在每個多邊形上應用我的 ' ' 算法(給定一組定義多邊形的坐標和一個定義點的坐標,告訴我該點是否在內(nèi)部)直到我找到正確的一個。但是如果我有很多點可以放入很多多邊形,那將是非常昂貴的。對此的改進依賴于以下想法:為了優(yōu)化搜索,我創(chuàng)建了一個grid(集合),步驟為n, k,其中我已經(jīng)對每對坐標進行了屬性,使得:for i=-180 to 180 step n     for j = -90 to 90 step k        grid.add(i,j)然后我創(chuàng)建一個字典,對于集合中的每一對,我找到相應的多邊形For each g in grid    For each p in polygons        If point_in_polygon(g,p) == True            my_dict(g) = p然后,當我收到 C1 時,我會在我的網(wǎng)格中尋找最近的坐標,比如說 g1。多虧了 my_dict,我可以快速得到p1 = my_dict(g1) 然后我計算point_in_polygon(C1, p1)哪個可能是真的。如果不是,我會找到分配給不同多邊形的最接近的 g,然后重做測試。等等,直到我找到正確的多邊形?,F(xiàn)在,問題是:創(chuàng)建網(wǎng)格的最佳 n、k 是多少?這樣我就可以在最少的步驟中找到正確的多邊形。我不希望它太低,因為搜索分配給不同多邊形的最近 g 可能很昂貴。我也不希望它太高,因為那樣我可能會丟失一些多邊形,然后搜索永遠不會收斂。我的直覺是最小的多邊形將給出步驟。我不確定這是一個編程問題,一個數(shù)學問題,還是我可以憑經(jīng)驗找到的問題,這就是我在這里問的原因。
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

讓我建議對您的網(wǎng)格稍作修改。目前,您為每個單元存儲單元中心所屬的多邊形。相反,存儲與單元格重疊的所有多邊形。然后,每當您看到一個單元格只有一個重疊的多邊形時,您就不需要進行任何包含測試。網(wǎng)格可以通過保守光柵化的方法構(gòu)建(請注意,引用的文章不是針對保守的,而是針對一般光柵化的)。

網(wǎng)格的效率與單個多邊形單元格和總單元格的比率相關(guān)(因為這是不必執(zhí)行多邊形包含測試的概率)。存儲本身非常便宜。您可以使用密集數(shù)組并持續(xù)訪問單元格。因此,從理論的角度來看,您應該擁有盡可能多的單元格(因為單元數(shù)越多,單多邊形單元格比率就會增加)。在實踐中,您可能會發(fā)現(xiàn)緩存和其他內(nèi)存效應可能會使大型網(wǎng)格變得不切實際。但是,除了測試之外,沒有其他好的方法可以知道。因此,只需在幾臺不同的機器上嘗試幾種尺寸并嘗試找到合適的尺寸即可。

如果我不得不猜測,我會說您的單元格應該是方形的,并且面積約為平均多邊形面積的 1% - 5%。此外,與許多細長多邊形相比,可以更有效地處理更緊湊的多邊形。


查看完整回答
反對 回復 2021-07-06
?
慕容森

TA貢獻1853條經(jīng)驗 獲得超18個贊

選擇任意點并從該點筆直向下畫一條線。您命中的第一個多邊形邊會告訴您該點所在的多邊形。

因此,如果您不想進行多邊形測試,那么與其將空間劃分為規(guī)則網(wǎng)格,不如先將其切割成垂直切割的條帶,這些條帶穿過所有多邊形交叉點。

現(xiàn)在,在每個條帶內(nèi),沒有多邊形邊交叉或結(jié)束,因此您可以從下到上制作所有這些邊的有序列表。

如果要查找包含點的多邊形,請使用 x 坐標進行二分搜索以找到合適的條帶。然后在跨越條帶的邊列表中,您可以使用 y 坐標進行二分搜索以找到該點下方最近的一條,并告訴您該點所在的多邊形。

谷歌“梯形分解”可以找到很多關(guān)于類似技術(shù)的信息。


查看完整回答
反對 回復 2021-07-06
  • 2 回答
  • 0 關(guān)注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號