3D ポイントクラウドがあり、任意のポイント p から距離 d 内にあるすべてのポイントを効率的にクエリしたい (保存されたポイントクラウドの一部であるとは限らない)
クエリは次のようになります
Pointcloud getAllPoints(Point p, float d);
これに適した加速構造は何ですか?範囲ツリーは、球のボリュームではなく、長方形のボリュームのクエリにのみ適しているようです (もちろん、球のバウンディング ボックスをクエリして、距離が d より大きいすべての頂点を並べ替えることができますが、もっと良い方法があるかもしれません)これ??)
ありがとう!
ノベロクラッツの提案に従って、構造の望ましい機能を定義しようとしています。
SearchStructure Create(Set<Point> cloud)
Set<Point> Query(SearchStructure S, Point p, float maxDistance)
SearchStructure Remove(Point p)
SearchStructure Insert(Point p)
SearchStructure Displace(Set<Point> displacement) //where each value describes an offsetVector to the currently present points
通常、n回のクエリの後、ポイントが移動し、いくつかの(多くはありません!)挿入と削除が行われます。オフセット ベクトルは、すべてのポイントのバウンディング ボックスに比べて非常に小さい