Итак, у меня есть трехмерный массив, представляющий ограничивающий объем (равномерная сетка «ячеек»), который был сплющен в 1D-массив, чтобы я мог использовать его в CUDA.Индексирование 3d-массива в 1-й массив - поиск соседей
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно иметь возможность взять любую данную «ячейку» в моей единой сетке и найти всех ее соседей. Это просто, когда у вас есть 3D-массив (всего три цикла для циклов от -1 до 1 и правильная индексация в 3D-массив), но я ужасен, пытаясь разбить это на версию, которая работает на 1D-массиве , Должна быть простая формула, которая будет вычислять это, но я просто не могу понять это.
Кроме того, края не должны зацикливаться, то есть ячейка в нижнем левом углу не должна быть «соседней» с ячейкой в нижнем правом углу.
Любая помощь приветствуется. Благодарю.
Что вы пытаетесь? То, что вы ищете, немного сложно, но не хуже, и ваша любимая поисковая система, вероятно, быстро приведет вас к алгоритму и реализациям на ваших любимых языках программирования. –
@HighPerformanceMark Я попытался отработать это уравнение http://stackoverflow.com/questions/4810340/3d-1d-array-indexing?rq=1, но не имел большой удачи. Также не удалось найти что-либо на google или SO – Kinru