О/ я бы хотел разбить некоторую шарообразную область пространства на

равные кубы (типа воксели), и сложить эти кубы в массив, есть ли какой-нибудь хитрый алгоритм, чтоб из координат куба получить индекс в массиве?

18 ответов

23 просмотра

Ну если есть алгоритм по которому ты его туда положил то имхо тогда да по тому же алгоритму (сорян за кепство) Наверное нужно знать координаты центра и радиус...

anton- Автор вопроса
Владимир
Ну если есть алгоритм по которому ты его туда поло...

Имеется ввиду непоследовательный доступ. Например если бы это был куб стороной 100, это был бы массив миллион элементов, а для шара такого диаметра, это может быть массив почти в два раза меньше. Но как мне понять, какому "вокселю" в шаре, соответствует элемент с некоторым индексом?

Нуу ты же его как то по срезам наверное будешь заполнять? Квадрат за квадратом, например? Или у тебя другой принцип?

anton- Автор вопроса
Владимир
Нуу ты же его как то по срезам наверное будешь зап...

Вопрос в том числе и про принцип, всё что я придумал пока это для каждого среза запоминать количество ячеек на нём, чтоб быстро находить интервал индексов нужного среза, наверное по количеству можно определить форму среза, или хотя-бы габариты

Сложи в мапу

anton- Автор вопроса

хочу, но непонятно, что это за алгоритм, вот и задаю вопрос

anton
хочу, но непонятно, что это за алгоритм, вот и зад...

Не ну было бы прикольно, в целом интересное на подумать/погуглить Пока сходу идей толком нет хороших у меня

anton
хочу, но непонятно, что это за алгоритм, вот и зад...

А сорян ты хочешь зная что о кубе найти его в массиве?

anton- Автор вопроса
Evgenii Zheltonozhskii🇮🇱
Так какие операции нужны

из координат куба получить индекс в массиве (куб имеется ввиду "воксель")

anton- Автор вопроса
Evgenii Zheltonozhskii🇮🇱
И все?

думаю в обратную сторону не нужно

anton
думаю в обратную сторону не нужно

А чем не устраивает положить в мапу где координаты это ключ?

anton- Автор вопроса
Evgenii Zheltonozhskii🇮🇱
А чем не устраивает положить в мапу где координаты...

пожалуй это хорошо, нужно оценить, какой там оверхэд получится, может быть просто распаковать всё в куб

anton- Автор вопроса
Владимир
А просто бинарный поиск пойдет?

не понимаю, как это применить

Похожие вопросы

Обсуждают сегодня

Всем привет Есть достаточно базовая задача: Дан неориентированный граф. Требуется определить, есть ли в нем цикл, и, если есть, вывести его. Входные данные подаются в виде ма...
Αλeksandr
10
Привет всем. Подскажите, как можно данную задачу более менее эффективно решить? В столовой одного известного Завода вот-вот начнётся обед. На обеде есть три гарнира — макарош...
Vitaliy
6
всем привет. У меня есть неупорядоченный массив точек(в моем случае в трёхмерном пространстве). Есть критерий связанности точек: если евклидово расстояние между ними меньше за...
Павлик Ливаткин
31
Доброе утро. Такой вопрос: есть ли какие-то практически полезные меры вычислительной мощности (в смысле computational complexity) для реальных машин, с ограниченными ресурсам...
Yaroslav Schekin
15
Всем привет Пытаюсь решить следующую задачу: https://informatics.msk.ru/mod/statements/view.php?id=6992&chapterid=101#1 Строка S была записана много раз подряд, после чего из ...
Αλeksandr
10
Здравствуйте. Есть задача нужно найти наименшое число P где фактриал P делиться на 10^N. Ограничения 10^9. Знаю что нужно найти такой P в конце как минимум N нулей. Решение с ...
. Azmiddin
20
Друзья, практический вопрос надо счиать скользящую медиану в последовательности по заданному окну (длины N) тупой вариант - взять значения в окне, отсортировать, взять элеме...
Стас Выщепан
17
Должна-ли работать такая стратегия: Мы каждую секунду бросаем монетку - орел или решка. Если орел - покупаем акцию на все деньги, если у нас есть деньги, или продаем все акци...
George Polevoy
13
#pragma once #include <iostream> #include <vector> template <typename T, typename Comp = std::less<T>> class Heap { public: Heap() = default; Heap(const std::vector<T>&...
Степан
1
Как можно сжимать временные ряды в памяти? У меня есть исторические стоимости ценных бумаг. Данные для каждой минуты в истории OHLC (Open, High, Low, Close). Соответственно, O...
George Polevoy
10
Карта сайта