forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Поиск ближайшей точки в трёхмерном массиве (http://forum.boolean.name/showthread.php?t=19199)

Reizel 28.05.2014 12:58

Поиск ближайшей точки в трёхмерном массиве
 
Т.е. есть массив размерностью X,Y,Z содержащий некие структуры. Но они есть не во всех клетках, в большинстве они заполнены null.

Задача: на вход функция принимает координаты ячейки в этом массиве, и если по ним расположен NULL - алгоритму нужно ОЧЕНЬ быстро найти ближайшую "точку-не-null"

Сейчас я криво-косо хожу спиралью вокруг точки, и натыкаясь на первую попавшуюся принимаю её за ближайшую.

Ещё сделал для оптимизации - в массиве могут храниться как сами объекты, так и ссылки на эти объекты. Т.е. если алгоритм уже искал в точке {x,y,z} ближайшую, он по этим координатам забъёт ссылку на найденный результат, чтобы второй раз не ходить :) типа кэш. Но всё это очень медленно, может уже есть какие нибудь алгоритмы оптимизации?

Подскажите в каком направлении читать, а то я даже запрос в гугл не могу правильно состряпать

SBJoker 28.05.2014 13:01

Ответ: Поиск ближайшей точки в трёхмерном массиве
 
BSP деревья в помощь
или
OcTree

Nex 28.05.2014 14:22

Ответ: Поиск ближайшей точки в трёхмерном массиве
 
Волновой алгоритм может быть подойдет.


Часовой пояс GMT +4, время: 19:26.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot