Problemstellung: Um die nächste GRID ID jedes der Partikel mit Octree zu finden.Algorithmus für Octree für nächsten Nachbarn seach
Fig [1]:
Fig [2]:
Ich habe ein System von Teilchen (~ 6K, beweglich), für die ich brauche den Gitterpunkt (starr zu überprüfen; im Bild) ist am nächsten. Jemand hat mir vorgeschlagen, für Octree zu gehen, da es für 3D-Grids schnell (est) ist.
Ist dies der richtige Algorithmus für rekursive Octree, um den nächsten Rasterpunkt des Rasters zu erhalten?
- Erhalten Sie einen Eingang als Punkt P Start-Koordinate C (erstes Mal [0,0,0])
- starten Size = [Sx, Sy, Sz]
- all 8 Mittelpunkt Get mi = {M1, .., M8} erhalten Mindestabstand von mi und P
Say M Position von M als Cn eingestellte Größe Sn = [Sx/8, Sy/8, Sz/8] beginnen erhalten
Wenn der Abstand von M und P kleiner als 2 * ist (Gitterabstand G):
5.1. Iterieren Sie alle Gitterpunkte von Cn bis Sn
5.2. Drucken dest als Ergebnis
sonst
6,1. Setze Startkoordinate als Cn
6.2. Größe einstellen als Sn
6.3. Goto 1
Problem: Die letzte Iteration essen alle Geschwindigkeit, wenn die Partikel oder fast an der Grenze ist, wie es alle A x B x C
Bitte prüft vorschlagen, wenn Sie ein besserer Weg, um dieses Problem zu lösen.
Können Sie ein wenig erklären. –