簡體   English   中英

快速查詢的數據結構?

[英]Data structure for fast line queries?

我知道我可以使用KD-Tree存儲點,並在接近另一個給定點的一小部分中快速迭代。 我想知道行中是否有類似的東西。

給定一組3D中的行L(將存儲在該數據結構中)和另一個“查詢行” q,我希望能夠快速遍歷L中“與q足夠接近”的所有行。 我打算使用的距離是u和v兩點之間的最小歐幾里得距離,其中u是第一行的某個點,而v是第二行的某個點。 計算該距離不是問題(涉及叉積的一個很好的技巧)。

也許你們有一個好主意,或者知道在哪里尋找論文,說明等。

TIA。

R-Tree是另一種選擇,並且是基於磁盤的數據庫系統中最常用於空間索引的一種選擇。 與KD-Tree相比,它的實現要復雜一些,但是通常認為它更快,並且對索引線和多邊形沒有問題。

您也可以為此使用KD-Trees。

可以構建一個適用於圖元而不是點的KD-Tree。 許多射線追蹤器這樣做是為了使三角形命中測試更快。 我見過的最好的描述是在此光線跟蹤教程中

一個可能更快但不是100%准確的解決方案是僅保留每個線段的點列表,並將其插入到基於點的標准KD-Tree中。 找到最近的點,然后用線段標記它們,然后使用該點獲得最近的線。 它很粗糙,但與其他選項相比通常非常快。 “技巧”是找到正確的平衡點,即沿着線段的點之間保持較大的空間(較快)與將線段分割成更多的點(較慢,但更准確)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM